Function at 0x43ebe3
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 0xc]
cmp ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
jne 0x43ec10
xor eax, eax
jmp 0x43f665
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], ecx
jne 0x43ec26
mov dword [eax + 0xc], 0x45aa04
mov dword [eax + 0x10], 0x45aa0a
mov eax, dword [ebp + 8]
and dword [eax + 0x50], 0
push esi
push edi
push 0x6c
lea ecx, [ebp + 0xc]
push ecx
push 0
lea ecx, [eax + 4]
push ecx
push eax
call fcn.00433d14
mov esi, dword [ebp + 0xc]
xor edi, edi
add esp, 0x14
inc edi
test eax, eax
jne 0x43ec9e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
and ecx, 0xb
or ecx, 0x200
mov dword [esi + 0x5c], ecx
cmp word [ebx], 0x5e
jne 0x43ec78
test byte [eax + 8], 2
je 0x43ec72
or byte [esi + 0x5d], 4
jmp 0x43ec78
inc ebx
inc ebx
and byte [esi + 0x5d], 0xfd
or byte [esi + 0x5d], 1
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov dword [esi + 8], ecx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], eax
mov dword [esi + 0x60], ecx
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], edi
jmp 0x43eca1
mov eax, dword [ebp + 0x10]
cmp ebx, eax
jae 0x43f61a
xor edx, edx
jmp 0x43ecb2
xor edi, edi
xor edx, edx
inc edi
cmp dword [ebp - 8], edx
je 0x43ed2c
mov ax, word [ebx]
cmp ax, 0x29
je 0x43ed2c
cmp ax, 0x2a
je 0x43ed2c
cmp ax, 0x2b
je 0x43ed2c
cmp ax, 0x3f
je 0x43ed2c
cmp ax, 0x7b
je 0x43ed2c
cmp ax, 0x7c
je 0x43ed29
push 0x6c
lea eax, [ebp - 4]
push eax
push 0
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0xc]
push eax
call fcn.00433d14
add esp, 0x14
test eax, eax
jne 0x43ed27
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov dword [eax + 8], esi
mov dword [eax + 0x20], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x4c], edi
mov dword [eax + 0x50], edi
or dword [eax + 0x60], 0xffffffff
mov ecx, dword [ecx + 0x5c]
and ecx, 0x4000000b
or ecx, 0x1000
mov dword [eax + 0x5c], ecx
mov esi, eax
xor edx, edx
mov dword [ebp - 8], edx
mov ax, word [ebx]
cmp ax, 0x5c
jne 0x43eed8
mov ecx, dword [ebp + 0x10]
push 2
pop edi
mov dword [ebp - 0x14], ebx
add ebx, edi
cmp ebx, ecx
mov dword [ebp + 0xc], ebx
jae 0x43f645
mov ax, word [ebx]
cmp ax, 0x78
jne 0x43edc9
add ebx, edi
cmp ebx, ecx
jae 0x43f645
cmp word [ebx], 0x7b
jne 0x43edc4
inc ebx
inc ebx
mov edi, ebx
mov dword [ebp - 0x20], edi
cmp ebx, dword [ebp + 0x10]
jae 0x43f645
mov ax, word [ebx]
inc ebx
inc ebx
cmp ax, 0x7d
jne 0x43ed6f
cmp dword [esi + 0x1c], 0xffffffff
je 0x43ef43
cmp dword [ebp - 0x10], 0
jne 0x43ef43
mov eax, ebx
sub eax, edi
dec eax
dec eax
push 0
sar eax, 1
push eax
push edi
call fcn.00434f6a
add esp, 0xc
cmp eax, 0xffffffff
je 0x43f606
cmp eax, 0xffff
jle 0x43edef
add dword [esi + 0x1c], 2
jmp 0x43ef43
lea eax, [ebx + 4]
jmp 0x43edd2
cmp ax, 0x75
jne 0x43edf7
lea eax, [ebx + 0xa]
cmp eax, ecx
ja 0x43f645
mov ebx, eax
cmp dword [esi + 0x1c], 0xffffffff
je 0x43ef43
cmp dword [ebp - 0x10], edx
jne 0x43ef43
inc dword [esi + 0x1c]
jmp 0x43ef43
cmp ax, 0x30
jb 0x43ee64
cmp ax, 0x39
ja 0x43ee64
lea eax, [ebp + 0xc]
push eax
call fcn.0043a43a
test eax, eax
mov edi, dword [ebp + 8]
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [edi + 0x54], ecx
jle 0x43f60a
push eax
push edi
call fcn.0043a5bf
test eax, eax
pop ecx
pop ecx
je 0x43f60a
or byte [eax + 0x5f], 4
or byte [edi + 9], 0x10
cmp dword [esi + 0x1c], 0xffffffff
je 0x43ee52
mov eax, dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x43ee4a
add dword [esi + 0x1c], eax
jmp 0x43ee52
or dword [esi + 0x1c], 0xffffffff
or byte [esi + 0x5f], 8
test byte [esi + 0x5e], 0xc
mov ebx, dword [ebp + 0xc]
jne 0x43f645
jmp 0x43ef43
cmp ax, 0x41
jne 0x43ee7d
lea eax, [ebx - 2]
cmp dword [esi + 0x14], eax
jne 0x43f645
add ebx, edi
jmp 0x43ef43
cmp ax, 0x5a
jne 0x43ee9b
lea eax, [ebx + 2]
cmp eax, ecx
jae 0x43ee94
cmp word [eax], 0x29
jne 0x43f645
mov ebx, eax
jmp 0x43ef43
cmp ax, 0x61
je 0x43ee76
cmp ax, 0x7a
je 0x43ee76
cmp ax, 0x42
je 0x43ee76
cmp ax, 0x62
je 0x43ee76
add ebx, edi
cmp ax, 0x4b
jne 0x43eddc
cmp dword [ebp - 0x10], edx
jne 0x43f645
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp dword [eax + 0x1c], 0xffffffff
je 0x43ef43
mov dword [eax + 0x1c], edx
jmp 0x43ef43
cmp ax, 0x5e
je 0x43ef41
cmp ax, 0x24
je 0x43ef41
cmp ax, 0x5d
jne 0x43ef2f
cmp dword [ebp - 0x10], edx
je 0x43f645
mov ecx, dword [ebp - 0x14]
cmp ecx, edx
je 0x43f645
mov ax, word [ecx]
cmp ax, 0x2d
je 0x43f645
cmp ax, 0x5e
jne 0x43ef1c
add ecx, 2
cmp ecx, ebx
je 0x43f645
inc ebx
inc ebx
cmp dword [esi + 0x1c], 0xffffffff
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], ebx
je 0x43ef43
jmp 0x43edef
cmp dword [ebp - 0x10], edx
je 0x43ef67
cmp ax, 0x5b
je 0x43f645
mov dword [ebp - 0x14], ebx
inc ebx
inc ebx
cmp ebx, dword [ebp + 0x10]
jb 0x43ecad
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x43f61a
cmp eax, dword [ebp - 0x18]
jb 0x43f61a
mov ebx, eax
jmp 0x43f645
cmp ax, 0x5b
jne 0x43ef81
mov dword [ebp - 0x1c], ebx
inc ebx
inc ebx
cmp word [ebx], 0x2d
mov dword [ebp - 0x10], edi
je 0x43f645
jmp 0x43ef43
cmp ax, 0x7c
jne 0x43f0d5
test byte [esi + 0x5d], 0x20
jne 0x43ef95
or byte [esi + 0x5d], 0x40
lea eax, [ebp - 8]
push eax
lea edi, [ebx + 2]
push edi
push ebx
push esi
call fcn.0043a491
mov esi, eax
add esp, 0x10
test byte [esi + 0x5d], 0x20
je 0x43efc3
cmp dword [esi + 0x18], 0
jne 0x43efb8
mov dword [esi + 0x18], ebx
mov dword [esi + 0x24], edi
mov esi, dword [esi + 8]
jmp 0x43f077
mov eax, dword [esi + 0xc]
test eax, eax
je 0x43efd7
test dword [eax + 0x5c], 0x802000
jne 0x43f077
push 0x6c
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
je 0x43f056
mov dword [eax + 8], esi
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x20], ecx
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ebx
mov ecx, dword [esi + 0x1c]
or dword [eax + 0x60], 0xffffffff
mov dword [eax + 0x1c], ecx
xor ecx, ecx
inc ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], ecx
mov dword [eax + 0x24], edi
mov ecx, dword [esi + 0x5c]
and ecx, 0x4020000b
or ecx, 0x2000
mov dword [eax + 0x5c], ecx
test byte [esi + 0x5e], 3
je 0x43f02e
or ecx, 0x10000
mov dword [eax + 0x5c], ecx
mov ecx, dword [esi + 0xc]
test ecx, ecx
mov dword [ebp - 4], ecx
je 0x43f044
mov dword [ecx + 8], eax
mov ecx, dword [ecx]
test ecx, ecx
jne 0x43f038
mov dword [ebp - 4], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x10], ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
lea ecx, [ebp - 8]
push ecx
push edi
push ebx
push eax
call fcn.0043a491
or dword [esi + 0x1c], 0xffffffff
or byte [esi + 0x5f], 8
add esp, 0x10
test byte [esi + 0x5e], 0x1c
jne 0x43f645
push 0x6c
lea eax, [ebp - 4]
push eax
push 0
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0xc]
push eax
call fcn.00433d14
add esp, 0x14
test eax, eax
jne 0x43f0cc
mov eax, dword [ebp - 4]
mov dword [eax + 8], esi
xor ecx, ecx
inc ecx
mov ebx, edi
mov dword [eax + 0x20], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], ecx
or dword [eax + 0x60], 0xffffffff
mov ecx, dword [esi + 0x5c]
and ecx, 0x4020000b
or ecx, 0x2000
mov dword [eax + 0x5c], ecx
test byte [esi + 0x5e], 3
je 0x43f0ca
or byte [eax + 0x5e], 1
mov esi, eax
and dword [ebp - 0x14], 0
jmp 0x43ef43
cmp ax, 0x29
jne 0x43f269
lea eax, [ebp - 8]
push eax
lea edi, [ebx + 2]
push edi
push ebx
push esi
mov dword [ebp + 0xc], edi
call fcn.0043a491
mov esi, eax
add esp, 0x10
test byte [esi + 0x5d], 0x20
je 0x43f125
cmp dword [esi + 0x18], 0
jne 0x43f105
mov dword [esi + 0x18], ebx
mov dword [esi + 0x24], ebx
mov esi, dword [esi + 8]
test byte [esi + 0x5e], 0x20
jne 0x43f114
mov dword [ebp - 8], esi
lea eax, [ebp - 8]
push eax
push edi
push ebx
push esi
call fcn.0043a491
add esp, 0x10
mov esi, eax
cmp dword [esi + 8], 0
je 0x43f645
mov ecx, dword [esi + 0x5c]
test ecx, 0x1c0000
je 0x43f158
mov eax, dword [esi + 0x1c]
test eax, eax
jle 0x43f60f
test ecx, 0xc0000
je 0x43f158
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x50]
jle 0x43f158
mov dword [ecx + 0x50], eax
cmp dword [esi + 0x18], 0
jne 0x43f161
mov dword [esi + 0x18], ebx
mov dword [esi + 0x24], edi
mov edx, dword [esi + 0x5c]
test dh, dh
js 0x43f177
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
je 0x43f645
mov ecx, dword [esi + 0x1c]
or edi, 0xffffffff
cmp ecx, edi
jne 0x43f184
mov dword [ebp - 8], esi
mov eax, dword [esi + 8]
cmp dword [eax + 0x1c], edi
je 0x43f1a0
cmp ecx, edi
je 0x43f19d
test edx, 0xf0000
jne 0x43f1a0
add dword [eax + 0x1c], ecx
jmp 0x43f1a0
mov dword [eax + 0x1c], edi
mov eax, dword [esi + 8]
cmp dword [eax + 0x1c], edi
jne 0x43f1ac
or byte [esi + 0x5f], 8
mov eax, dword [esi + 8]
mov ecx, 0x400000
test dword [eax + 0x5c], ecx
je 0x43f207
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
jne 0x43f207
lea eax, [ebp - 0x20]
push eax
push dword [esi + 0x14]
call fcn.00434f08
test eax, eax
mov edx, dword [ebp - 0xc]
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x54], edx
jle 0x43f1f4
mov edx, dword [ebp - 0x20]
cmp edx, dword [esi + 0x18]
jne 0x43f1f4
push eax
push ecx
call fcn.0043a5bf
pop ecx
pop ecx
mov dword [esi + 0x64], eax
test eax, eax
jmp 0x43f1f8
test byte [esi + 0x5e], 0xf
je 0x43f645
or byte [esi + 0x5e], 0x80
mov dword [ebp - 8], esi
jmp 0x43f25e
test dword [esi + 0x5c], ecx
je 0x43f25e
mov eax, dword [esi + 0xc]
xor ecx, ecx
cmp eax, ecx
je 0x43f645
mov eax, dword [eax]
cmp eax, ecx
je 0x43f645
test byte [eax + 0x5d], 0x20
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
je 0x43f237
or byte [eax + 0x5f], 2
mov eax, dword [esi + 0xc]
jmp 0x43f254
or byte [eax + 0x5f], 1
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
cmp dword [eax], ecx
je 0x43f25e
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
or byte [eax + 0x5f], 2
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
cmp dword [eax], ecx
jne 0x43f645
mov esi, dword [esi + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x43ef43
cmp ax, 0x2a
je 0x43f42c
cmp ax, 0x2b
je 0x43f42c
cmp ax, 0x3f
je 0x43f42c
cmp ax, 0x7b
je 0x43f42c
cmp ax, 0x28
jne 0x43f417
push 0x6c
lea eax, [ebp - 4]
push eax
push 0
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0xc]
push eax
call fcn.00433d14
add esp, 0x14
test eax, eax
jne 0x43ef41
mov eax, dword [ebp - 4]
mov dword [eax + 8], esi
mov dword [eax + 0x20], ebx
inc ebx
inc ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x4c], edi
mov dword [eax + 0x50], edi
test byte [esi + 0x5e], 0x40
je 0x43f2db
or dword [eax + 0x60], 0xffffffff
jmp 0x43f2e4
inc dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x60], ecx
mov ecx, dword [esi + 0x5c]
and ecx, 0x4000000b
mov dword [eax + 0x5c], ecx
cmp word [ebx], 0x3f
jne 0x43f410
dec dword [ebp - 0xc]
or dword [eax + 0x60], 0xffffffff
inc ebx
inc ebx
xor esi, esi
xor edx, edx
cmp word [ebx], 0x2d
jne 0x43f311
inc ebx
inc ebx
mov edx, edi
mov cx, word [ebx]
cmp cx, 0x69
jne 0x43f329
test edx, edx
je 0x43f323
or dword [eax + 0x5c], edi
jmp 0x43f369
and dword [eax + 0x5c], 0xfffffffe
jmp 0x43f369
cmp cx, 0x6d
jne 0x43f33f
test edx, edx
je 0x43f339
and dword [eax + 0x5c], 0xfffffffd
jmp 0x43f369
or dword [eax + 0x5c], 2
jmp 0x43f369
cmp cx, 0x73
jne 0x43f355
test edx, edx
je 0x43f34f
or dword [eax + 0x5c], 8
jmp 0x43f369
and dword [eax + 0x5c], 0xfffffff7
jmp 0x43f369
cmp cx, 0x55
jne 0x43f377
test edx, edx
je 0x43f365
and byte [eax + 0x5f], 0xbf
jmp 0x43f369
or byte [eax + 0x5f], 0x40
inc ebx
inc ebx
cmp ebx, dword [ebp + 0x10]
mov esi, edi
jb 0x43f307
jmp 0x43f645
test esi, esi
je 0x43f392
cmp word [ebx], 0x29
jne 0x43f392
or byte [eax + 0x5d], 0x80
mov dword [eax + 0x14], ebx
mov esi, eax
mov dword [ebp - 8], eax
jmp 0x43ef43
mov cx, word [ebx]
cmp cx, 0x3a
je 0x43f40b
cmp cx, 0x3c
jne 0x43f3c2
inc ebx
inc ebx
mov cx, word [ebx]
cmp cx, 0x3d
jne 0x43f3b2
or byte [eax + 0x5e], 4
jmp 0x43f40b
cmp cx, 0x21
jne 0x43f645
or byte [eax + 0x5e], 8
jmp 0x43f40b
cmp cx, 0x3d
jne 0x43f3ce
or byte [eax + 0x5e], 1
jmp 0x43f40b
cmp cx, 0x21
jne 0x43f3da
or byte [eax + 0x5e], 2
jmp 0x43f40b
cmp cx, 0x3e
jne 0x43f3e6
or byte [eax + 0x5e], 0x20
jmp 0x43f40b
cmp cx, 0x5e
jne 0x43f3fb
inc dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x60], ecx
or byte [eax + 0x5e], 0x10
jmp 0x43f40b
cmp cx, 0x28
jne 0x43f645
dec ebx
dec ebx
or byte [eax + 0x5e], 0x40
inc ebx
inc ebx
mov dword [eax + 0x14], ebx
mov esi, eax
jmp 0x43ef43
cmp dword [esi + 0x1c], 0xffffffff
mov dword [ebp - 0x14], ebx
je 0x43ef41
inc dword [esi + 0x1c]
jmp 0x43ef41
lea ecx, [esi + 0x10]
mov eax, dword [ecx]
cmp eax, edx
je 0x43f457
mov edx, dword [eax + 0x24]
cmp ebx, edx
jne 0x43f457
cmp word [edx - 2], 0x29
jne 0x43f457
mov edi, eax
test byte [edi + 0x5e], 0xf
mov dword [ebp - 4], edi
jne 0x43f645
jmp 0x43f4e1
cmp ebx, dword [ebp - 0x18]
jne 0x43f48c
push 0x6c
lea eax, [ebp - 4]
push eax
push 0
push ecx
lea eax, [esi + 0xc]
push eax
call fcn.00433d14
add esp, 0x14
test eax, eax
jne 0x43f4de
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
mov dword [edi + 8], esi
mov dword [edi + 0x20], eax
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x18], eax
jmp 0x43f4c1
cmp dword [ebp - 0x14], 0
je 0x43f645
push 0x6c
lea eax, [ebp - 4]
push eax
push 0
push ecx
lea eax, [esi + 0xc]
push eax
call fcn.00433d14
add esp, 0x14
test eax, eax
jne 0x43f4de
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov dword [edi + 8], esi
mov dword [edi + 0x20], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], ebx
xor eax, eax
inc eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x1c], eax
or dword [edi + 0x60], 0xffffffff
mov eax, dword [esi + 0x5c]
and eax, 0x4000000b
mov dword [edi + 0x5c], eax
jmp 0x43f4e1
mov edi, dword [ebp - 4]
mov ax, word [ebx]
cmp ax, 0x2a
jne 0x43f4f4
and dword [edi + 0x4c], 0
or dword [edi + 0x50], 0xffffffff
jmp 0x43f55b
cmp ax, 0x2b
je 0x43f4ee
cmp ax, 0x3f
jne 0x43f506
and dword [edi + 0x4c], 0
jmp 0x43f55b
cmp ax, 0x7b
jne 0x43f55b
lea eax, [ebp + 0xc]
inc ebx
inc ebx
push eax
push ebx
mov dword [ebp + 0xc], ebx
call fcn.00434f08
imul eax, dword [edi + 0x4c]
mov ebx, dword [ebp + 0xc]
pop ecx
pop ecx
mov dword [edi + 0x4c], eax
mov cx, word [ebx]
cmp cx, 0x7d
je 0x43f558
cmp cx, 0x2c
jne 0x43f645
inc ebx
inc ebx
cmp word [ebx], 0x7d
mov dword [ebp + 0xc], ebx
je 0x43f4ee
lea eax, [ebp + 0xc]
push eax
push ebx
call fcn.00434f08
imul eax, dword [edi + 0x50]
mov ebx, dword [ebp + 0xc]
pop ecx
pop ecx
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x50]
cmp eax, ecx
ja 0x43f645
test eax, eax
jne 0x43f575
test ecx, ecx
je 0x43f645
cmp eax, 1
jne 0x43f57e
cmp ecx, eax
je 0x43f581
mov dword [ebp - 8], edi
and dword [ebp - 0x14], 0
cmp eax, ecx
je 0x43f58d
or byte [edi + 0x5f], 0x10
inc ebx
inc ebx
mov ax, word [ebx]
cmp ax, 0x3f
jne 0x43f59e
and byte [edi + 0x5f], 0xef
jmp 0x43f5a8
cmp ax, 0x2b
jne 0x43f5aa
or byte [edi + 0x5f], 0x20
inc ebx
inc ebx
test byte [edi + 0x5f], 0x40
je 0x43f5b7
xor dword [edi + 0x5c], 0x10000000
mov dword [edi + 0x24], ebx
mov eax, dword [edi + 0x4c]
cmp eax, dword [edi + 0x50]
jne 0x43f5e4
cmp dword [esi + 0x1c], 0xffffffff
je 0x43f5e4
lea eax, [edi + 0x1c]
cmp dword [eax], 0xffffffff
je 0x43f5e4
mov ecx, dword [edi + 0x4c]
dec ecx
imul ecx, dword [eax]
add dword [esi + 0x1c], ecx
mov ecx, dword [eax]
imul ecx, dword [edi + 0x4c]
mov dword [eax], ecx
jmp 0x43f5f7
or dword [esi + 0x1c], 0xffffffff
mov eax, 0x8000000
or dword [esi + 0x5c], eax
or dword [edi + 0x1c], 0xffffffff
or dword [edi + 0x5c], eax
test byte [esi + 0x5e], 0x1c
je 0x43ef43
mov ebx, dword [edi + 0x18]
jmp 0x43f645
mov ebx, edi
jmp 0x43f645
mov ebx, dword [ebp - 0x14]
jmp 0x43f645
mov esi, dword [esi + 0x18]
test esi, esi
je 0x43f645
mov ebx, esi
jmp 0x43f645
xor edi, edi
cmp esi, edi
je 0x43f645
push edi
push ebx
push ebx
push esi
call fcn.0043a491
add esp, 0x10
test byte [eax + 0x5d], 0x20
je 0x43f640
cmp dword [eax + 0x18], edi
jne 0x43f63a
mov dword [eax + 0x18], ebx
mov dword [eax + 0x24], ebx
mov eax, dword [eax + 8]
cmp dword [eax + 8], edi
je 0x43f658
push dword [ebp + 8]
call fcn.0043a6bf
mov eax, ebx
sub eax, dword [ebp - 0x24]
pop ecx
sar eax, 1
inc eax
jmp 0x43f663
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x54], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret