Function at 0x42a030
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
mov eax, dword [0x572844]
xor eax, esp
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
push ebx
mov ebx, dword [eax]
push ebp
mov ebp, dword [esp + 0x80]
push esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x2c], ebx
mov ebx, dword [edx]
mov dword [eax], 0
push edi
mov edi, dword [esp + 0x80]
mov dword [edx], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ebx
mov dword [ecx], 0
jmp case.0x42a28c.6
jne 0x42a4df
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [edx]
sub ebx, ecx
mov eax, dword [esi]
cmp eax, 6
jne 0x42a27b
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], ebx
sub eax, dword [ecx]
mov dword [esp + 0x24], eax
test ebx, ebx
jne 0x42a0d2
test eax, eax
je 0x42a8d2
push dword [esp + 0x20]
lea eax, [esp + 0x20]
push dword [esp + 0x94]
push 0
push eax
push ebp
lea eax, [esp + 0x38]
push eax
push edi
lea eax, [esi + 0x58]
push eax
call fcn.00429980
mov ecx, dword [esi + 0x190]
mov ebx, eax
mov edi, dword [esp + 0x24]
sub ecx, 1
je 0x42a146
sub ecx, 3
je 0x42a122
sub ecx, 6
jne 0x42a15c
push edi
push dword [esp + 0x14]
lea eax, [esi + 0x1a0]
push eax
call fcn.004af390
jmp 0x42a15c
push edi
push dword [esp + 0x14]
push dword [esi + 0x19c]
push dword [esi + 0x198]
call fcn.004282c0
mov dword [esi + 0x198], eax
mov dword [esi + 0x19c], edx
jmp 0x42a15c
push edi
push dword [esp + 0x14]
push dword [esi + 0x194]
call fcn.004761b0
mov dword [esi + 0x194], eax
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
add ebp, edx
mov dword [esp + 0x1c], ebp
add dword [eax], edx
mov eax, edx
add dword [esi + 0x18], eax
mov eax, dword [esp + 0x28]
adc ecx, dword [esi + 0x1c]
add dword [esp + 0x10], edi
mov dword [esi + 0x1c], ecx
xor ecx, ecx
add dword [eax], edi
mov eax, edi
add dword [esi + 0x20], eax
adc ecx, dword [esi + 0x24]
mov dword [esi + 0x24], ecx
test ebx, ebx
jne 0x42a8de
mov eax, dword [esp + 0x20]
cmp dword [eax], 1
jne 0x42a262
movzx ecx, word [esi + 0x10]
and ecx, 0xf
jne 0x42a1b2
xor eax, eax
jmp 0x42a1c8
dec ecx
mov eax, 0x55555556
imul ecx
mov eax, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
shl eax, cl
mov edx, dword [esi + 0x14]
xor ecx, ecx
add edx, eax
adc ecx, ecx
add edx, dword [esi + 0x18]
adc ecx, dword [esi + 0x1c]
xor ebx, ebx
lea esp, [esp]
mov al, dl
or al, 0x80
shrd edx, ecx, 7
mov byte [esp + ebx + 0x34], al
inc ebx
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x42a1e0
mov edx, dword [esi + 0x20]
lea ebp, [esp + 0x34]
mov ecx, dword [esi + 0x24]
add ebp, ebx
and byte [ebp - 1], 0x7f
xor edi, edi
mov al, dl
or al, 0x80
shrd edx, ecx, 7
mov byte [edi + ebp], al
inc edi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x42a208
and byte [edi + ebp - 1], 0x7f
lea eax, [esp + 0x34]
add edi, ebx
push edi
push eax
lea eax, [esi + 0x208]
push eax
call fcn.004af390
add dword [esi + 0x30], edi
mov ebp, dword [esp + 0x1c]
adc dword [esi + 0x34], 0
add dword [esi + 0x28], 1
mov dword [esi], 7
adc dword [esi + 0x2c], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
jmp 0x42a099
test edx, edx
mov edx, dword [esp + 0x14]
jne 0x42a09d
test edi, edi
je 0x42a935
jmp 0x42a09d
test ebx, ebx
je 0x42a92b
cmp eax, 7
ja case.0x42a28c.6
jmp dword [eax*4 + 0x42a94c]
mov ecx, dword [esi + 4]
cmp ecx, 0xc
jae 0x42a2c4
cmp ecx, 6
jae 0x42a2af
mov al, byte [ebp]
cmp al, byte [ecx + 0x56ab08]
jne 0x42a911
mov al, byte [ebp]
inc ebp
mov byte [ecx + esi + 0x290], al
inc dword [esi + 4]
inc dword [edx]
jmp case.0x42a28c.6
movzx ecx, byte [esi + 0x296]
lea edx, [esi + 0x296]
movzx eax, byte [esi + 0x297]
push 2
shl cx, 8
push edx
or cx, ax
push 0xffffffffffffffff
mov word [esi + 0x10], cx
call fcn.004761b0
not eax
cmp eax, dword [esi + 0x298]
jne 0x42a8f5
movzx eax, word [esi + 0x10]
mov ecx, 0xf
cmp cx, ax
sbb ecx, ecx
and ecx, 4
cmp eax, 0xf
ja 0x42a8fa
lea eax, [esi + 0x208]
mov dword [esi], 5
push eax
call fcn.004af340
mov edx, dword [esp + 0x14]
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 4], 0
jmp case.0x42a28c.6
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x42a3fd
mov al, byte [ebp]
lea ebx, [esi + 0x290]
mov byte [ebx], al
inc ebp
lea eax, [ecx + 1]
mov dword [esi + 4], eax
inc dword [edx]
cmp byte [ebx], cl
jne 0x42a3eb
mov edx, dword [esi + 0x28]
xor edi, edi
mov ecx, dword [esi + 0x2c]
mov edi, edi
mov al, dl
lea edi, [edi + 1]
or al, 0x80
shrd edx, ecx, 7
mov byte [edi + esi + 0x290], al
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x42a380
and byte [edi + esi + 0x290], 0x7f
lea eax, [edi + 1]
add dword [esi + 0x30], eax
lea edi, [esi + 0x208]
mov dword [esi + 0xc], eax
adc dword [esi + 0x34], 0
mov dword [esi + 0x38], eax
lea eax, [esi + 0x270]
push eax
push edi
mov dword [esi + 0x3c], 0
call fcn.004af230
push edi
call fcn.004af340
push dword [esi + 0xc]
push ebx
push 0xffffffffffffffff
call fcn.004761b0
mov edx, dword [esp + 0x14]
mov dword [esi + 0x50], eax
mov dword [esi], 1
movzx eax, byte [ebx]
lea eax, [eax*4 + 4]
mov dword [esi + 0x14], eax
jmp 0x42a09d
mov edi, dword [esi + 0x14]
cmp ecx, edi
je 0x42a42f
sub edi, ecx
cmp edi, ebx
jbe 0x42a40c
mov edi, ebx
push edi
lea eax, [esi + 0x290]
add eax, ecx
push ebp
push eax
call fcn.0051f6b0
mov edx, dword [esp + 0x20]
add esp, 0xc
add dword [esi + 4], edi
add dword [edx], edi
add ebp, edi
jmp 0x42a09d
lea eax, [esi + 0x290]
push eax
lea edi, [esi + 0xf8]
push edi
call fcn.00429c50
test eax, eax
jne 0x42a937
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
movzx eax, word [esi + 0x10]
and eax, 0xf
mov dword [esi], 6
mov dword [esi + 0x190], eax
sub eax, 1
je 0x42a49c
sub eax, 3
je 0x42a486
sub eax, 6
jne 0x42a4a6
lea eax, [esi + 0x1a0]
push eax
call fcn.004af340
jmp 0x42a4a6
mov dword [esi + 0x198], 0xffffffff
mov dword [esi + 0x19c], 0xffffffff
jmp 0x42a4a6
mov dword [esi + 0x194], 0xffffffff
push edi
lea eax, [esi + 0x58]
push eax
call fcn.00429dd0
test eax, eax
jne 0x42a937
jmp 0x42a099
mov eax, dword [esi + 8]
add eax, dword [esi + 0x18]
and eax, 3
or eax, 0
je 0x42a4f9
lea eax, [ecx + 1]
mov dword [edx], eax
inc dword [esi + 8]
mov al, byte [ebp]
inc ebp
test al, al
je case.0x42a28c.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.0051dca8
add esp, 0x68
ret 0x1c
movzx ecx, word [esi + 0x10]
and ecx, 0xf
jne 0x42a506
xor edi, edi
jmp 0x42a520
dec ecx
mov eax, 0x55555556
imul ecx
mov edi, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x14]
shl edi, cl
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, ecx
mov dword [esp + 0x1c], eax
je 0x42a55e
cmp eax, ebx
jbe 0x42a537
mov eax, ebx
mov dword [esp + 0x1c], ebx
push eax
lea eax, [esi + 0x290]
add eax, ecx
push ebp
push eax
call fcn.0051f6b0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x1c]
add dword [esi + 4], eax
add dword [edx], eax
add ebp, eax
jmp 0x42a09d
mov dword [esi], 5
mov dword [esi + 4], 0
mov eax, dword [esi + 0x190]
sub eax, 1
je 0x42a5fb
sub eax, 3
je 0x42a59b
sub eax, 6
jne 0x42a09d
lea eax, [esp + 0x34]
push eax
lea eax, [esi + 0x1a0]
push eax
call fcn.004af230
jmp 0x42a607
mov ecx, dword [esi + 0x198]
mov eax, dword [esi + 0x19c]
not ecx
not eax
mov byte [esp + 0x34], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esp + 0x35], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esp + 0x36], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esp + 0x37], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esp + 0x38], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esp + 0x39], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esp + 0x3a], cl
shrd ecx, eax, 8
mov byte [esp + 0x3b], cl
jmp 0x42a607
mov eax, dword [esi + 0x194]
not eax
mov dword [esp + 0x34], eax
lea edx, [esi + 0x290]
lea ecx, [esp + 0x34]
sub edi, 4
jb 0x42a627
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x42a630
add ecx, 4
add edx, 4
sub edi, 4
jae 0x42a616
cmp edi, 0xfffffffc
je 0x42a099
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x42a4df
cmp edi, 0xfffffffd
je 0x42a099
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x42a4df
cmp edi, 0xfffffffe
je 0x42a099
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x42a4df
cmp edi, 0xffffffff
je 0x42a099
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jmp 0x42a093
mov eax, dword [esi + 4]
cmp eax, dword [esi + 0xc]
jae 0x42a6a8
lea eax, [ecx + 1]
mov dword [edx], eax
mov eax, dword [esi + 4]
mov cl, byte [ebp]
inc ebp
mov dl, byte [eax + esi + 0x290]
inc eax
mov dword [esi + 4], eax
cmp cl, dl
jne 0x42a4df
mov edx, dword [esp + 0x14]
jmp case.0x42a28c.6
mov edi, dword [esi + 0x3c]
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x30]
cmp edi, edx
ja 0x42a6ff
jb 0x42a6be
cmp ecx, eax
jae 0x42a6ff
sub eax, ecx
sbb edx, edi
xor ecx, ecx
cmp ecx, edx
jb 0x42a6d0
ja 0x42a6ce
cmp ebx, eax
jbe 0x42a6d0
mov ebx, eax
push ebx
push ebp
push dword [esi + 0x50]
call fcn.004761b0
push ebx
mov dword [esi + 0x50], eax
lea eax, [esi + 0x208]
push ebp
push eax
call fcn.004af390
mov edx, dword [esp + 0x14]
add ebp, ebx
add dword [edx], ebx
add dword [esi + 0x38], ebx
adc dword [esi + 0x3c], 0
jmp 0x42a09d
and ecx, 3
or ecx, 0
je 0x42a747
mov al, byte [ebp]
inc ebp
mov byte [esp + 0x1b], al
lea eax, [esp + 0x1b]
push 1
push eax
push dword [esi + 0x50]
call fcn.004761b0
mov edx, dword [esp + 0x14]
mov dword [esi + 0x50], eax
inc dword [edx]
add dword [esi + 0x38], 1
adc dword [esi + 0x3c], 0
add dword [esi + 0x30], 1
adc dword [esi + 0x34], 0
cmp byte [esp + 0x1b], 0
jne 0x42a4df
jmp 0x42a09d
add eax, 4
mov dword [esi], 2
mov dword [esi + 0x30], eax
lea eax, [esp + 0x34]
push eax
lea eax, [esi + 0x208]
mov dword [esi + 4], 0
adc edx, 0
push eax
mov dword [esi + 0x34], edx
call fcn.004af230
lea edx, [esi + 0x270]
mov edi, 0x1c
lea ecx, [esp + 0x34]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x42a4df
add ecx, 4
add edx, 4
sub edi, 4
jae 0x42a780
jmp 0x42a099
cmp dword [esi + 4], 4
jae 0x42a7bb
lea eax, [ecx + 1]
mov dword [edx], eax
mov eax, dword [esi + 4]
mov cl, byte [ebp]
inc ebp
mov byte [esi + eax + 0x290], cl
inc dword [esi + 4]
jmp case.0x42a28c.6
mov eax, dword [esi + 0x50]
not eax
mov dword [esi], 3
cmp eax, dword [esi + 0x290]
mov dword [esi + 4], 0
jmp 0x42a4d9
mov eax, dword [esi + 4]
mov edi, 0xc
sub edi, eax
cmp edi, ebx
jbe 0x42a7e8
mov edi, ebx
push edi
add eax, 0x290
add eax, esi
push ebp
push eax
call fcn.0051f6b0
mov edx, dword [esp + 0x20]
add ebp, edi
add dword [esi + 4], edi
add esp, 0xc
add dword [edx], edi
cmp dword [esi + 4], 0xc
mov edi, dword [esp + 0x10]
jne case.0x42a28c.6
add dword [esi + 0x48], 1
lea ecx, [esi + 0x294]
movzx edi, word [esi + 0x10]
mov edx, 4
adc dword [esi + 0x4c], 0
mov dword [esi], 4
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov eax, dword [ecx]
mul edx
add eax, 4
adc edx, 0
cmp dword [esi + 0x30], eax
jne 0x42a4df
cmp dword [esi + 0x34], edx
jne 0x42a4df
push 6
push ecx
push 0xffffffffffffffff
call fcn.004761b0
not eax
cmp dword [esi + 0x290], eax
jne 0x42a4df
movzx ecx, byte [esi + 0x298]
movzx eax, byte [esi + 0x299]
shl ecx, 8
or ecx, eax
cmp edi, ecx
jne 0x42a4df
mov ax, word [esi + 0x29a]
mov ecx, 0x56ab10
cmp ax, word [ecx]
jmp 0x42a093
cmp byte [ebp], 0
je 0x42a8bf
test byte [esi + 0x40], 3
jne 0x42a911
mov dword [esi + 4], 0
mov dword [esi], 0
jmp case.0x42a28c.6
lea eax, [ecx + 1]
inc ebp
mov dword [edx], eax
add dword [esi + 0x40], 1
adc dword [esi + 0x44], 0
jmp case.0x42a28c.6
mov eax, dword [esp + 0x20]
mov dword [eax], 2
jmp 0x42a935
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.0051dca8
add esp, 0x68
ret 0x1c
mov ecx, 0x11
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.0051dca8
add esp, 0x68
ret 0x1c
pop edi
pop esi
pop ebp
mov eax, 0x11
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.0051dca8
add esp, 0x68
ret 0x1c
mov eax, dword [esp + 0x20]
mov dword [eax], 3
xor eax, eax
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0051dca8
add esp, 0x68
ret 0x1c