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

Disassembly:
sub esp, 0x70
mov eax, dword [esp + 0x78]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x30], edi
mov ecx, dword [edi + 0x8c]
mov dl, byte [edi + 0x90]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x8c]
mov byte [esp + 0x50], dl
mov dword [esp + 0x28], eax
mov esi, dword [ecx + 4]
dec eax
xor ecx, ecx
xor edx, edx
mov dl, byte [edi + 0x1c]
not eax
not ecx
mov ebx, eax
mov dword [esp + 0x74], ecx
mov ebp, edx
mov ecx, 0xc
mov eax, esi
xor edx, edx
call fcn.00526fd0
mov ecx, dword [esp + 0x74]
and eax, ebx
and edx, ecx
mov ecx, ebp
call fcn.00526f40
mov dword [esp + 0x58], eax
push 0
lea eax, [esi + 1]
push 0x1000
push 0
push eax
mov dword [esp + 0x6c], edx
call fcn.00526dd0
xor ecx, ecx
add eax, dword [esp + 0x28]
adc edx, ecx
sub eax, 1
sbb edx, ecx
and eax, ebx
mov ebx, dword [esp + 0x74]
mov ecx, ebp
and edx, ebx
call fcn.00526f40
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
sub eax, ecx
mov ecx, ebp
sbb edx, ebx
call fcn.00526fd0
mov ebp, edx
mov edx, dword [esp + 0x88]
xor ecx, ecx
mov ebx, eax
mov cl, byte [edx + 0x54]
mov edx, ebp
call fcn.00527a00
mov dword [esp + 0x38], eax
mov ecx, 0xc
mov eax, ebx
mov edx, ebp
call fcn.00527a00
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x4c], 0
mov byte [esp + 0x13], 0
cmp dword [eax + 0x24], 0x80
je 0x43424e
call fcn.004413e0
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x434261
call fcn.004413e0
lea edx, [ebp*4]
push edx
call fcn.004df770
mov dword [esp + 0x1c], eax
lea eax, [ebp*4 + 4]
push eax
call fcn.004df770
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x4342a0
push eax
call fcn.004df7a0
add esp, 4
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
xor ecx, ecx
mov cl, byte [edi + 0x1c]
call fcn.00526fd0
mov ecx, 0xc
call fcn.00527a00
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov edi, eax
sub esi, edi
push edx
mov dword [esp + 0x38], esi
mov dword [ecx + esi*4], ebx
call fcn.004387a0
push eax
call fcn.004387b0
mov ecx, dword [esp + 0x90]
add esp, 8
mov dword [esp + 0x70], eax
add eax, 0xfff
mov ecx, dword [ecx]
mov dword [esp + 0x74], edx
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x88]
adc edx, 0
mov ecx, dword [ecx + 4]
mov dword [esp + 0x6c], ecx
mov ecx, 0xc
call fcn.00526f40
sub eax, edi
cmp esi, eax
mov dword [esp + 0x3c], eax
jb 0x434351
mov edx, dword [esp + 0x18]
push edx
call fcn.004df7a0
mov eax, dword [esp + 0x30]
push eax
call fcn.004df7a0
mov edi, dword [ebx]
add esp, 8
mov ecx, 0x400
xor eax, eax
rep stosd dword es:[edi], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
cmp ebp, eax
jae 0x434359
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x88]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov cl, byte [eax + 0x55]
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
dec edi
xor ebp, ebp
mov dword [esp + 0x38], edi
mov edi, eax
add eax, esi
mov ebx, ecx
adc ecx, ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
cmp ebx, dword [esp + 0x5c]
jg 0x434550
jl 0x4343bf
cmp edi, dword [esp + 0x58]
jae 0x434550
test ebp, ebp
mov dword [esp + 0x24], 0
je 0x43446a
test ebp, ebp
je 0x434479
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
or ecx, eax
je 0x4343fe
mov edx, dword [ebp + 0x1c]
cmp edx, ebx
jg 0x4343fe
jl 0x4343f1
mov eax, dword [ebp + 0x18]
cmp eax, edi
ja 0x4343fe
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x2c]
add ebp, 0x18
or ecx, eax
jne 0x4343e1
push ebx
push edi
push ebp
call fcn.004386e0
mov esi, edx
add esp, 0xc
test esi, esi
jg 0x434483
jl 0x434415
test eax, eax
jae 0x434483
mov edx, eax
and edx, esi
cmp edx, 0xffffffff
je 0x43454c
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x434861
cmp eax, 0xfffffffe
jne 0x434861
cmp esi, 0xffffffff
jne 0x434861
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
push ebx
push edi
push eax
push ecx
mov dword [esp + 0x34], 1
call fcn.004335e0
add esp, 0x10
test eax, eax
jne 0x434861
mov edx, dword [esp + 0x88]
mov ebp, dword [edx + 0x30]
jmp 0x4343cf
mov eax, 0xfffffffe
or esi, 0xffffffff
jmp 0x434422
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x50]
xor ecx, ecx
and ebx, 0xff
mov cl, byte [edx + 0x1c]
mov edx, esi
call fcn.00526fd0
mov ecx, ebx
call fcn.00527a00
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, ebx
xor ebx, ebx
mov eax, dword [eax + 0x14]
mov esi, edx
shr eax, cl
add eax, edi
mov dword [esp + 0x78], eax
adc ebx, esi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x8c]
push 1
mov ecx, dword [eax + 0x90]
mov eax, dword [esp + 0x88]
shl edx, cl
mov ecx, dword [0x71d110]
add edx, ecx
mov ecx, edi
push edx
mov edx, dword [eax + 0x38f0]
add ecx, edx
mov edx, esi
adc edx, dword [eax + 0x38f4]
push edx
push ecx
push eax
call fcn.00404780
add esp, 0x14
cmp eax, 1
jne 0x434861
mov eax, dword [esp + 0x8c]
inc eax
add edi, 1
adc esi, 0
mov dword [esp + 0x8c], eax
cmp esi, ebx
jl 0x4344bd
jg 0x434529
cmp edi, dword [esp + 0x78]
jb 0x4344bd
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
add ecx, 1
adc eax, 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov edi, ecx
mov ebx, eax
jmp 0x4343a9
mov edx, dword [esp + 0x14]
mov esi, dword [0x71d110]
test esi, esi
jne 0x434563
call fcn.004413e0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, esi
lea edi, [esi + ecx]
mov ecx, dword [esp + 0x8c]
test ecx, ecx
mov dword [esp + 0x20], edi
jbe 0x434584
imul ecx, dword [esp + 0x54]
add ecx, esi
mov eax, ecx
lea ecx, [eax + 2]
cmp ecx, edi
ja 0x434594
mov word [eax], 0
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
shl ebp, 0xc
add ebp, edx
mov ebx, esi
add ebp, edi
mov eax, ebp
and eax, 0xfff
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x3c]
sar ebp, 0xc
cmp ebp, eax
jle 0x4345c0
mov ebp, eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x40]
xor edi, edi
sub ecx, eax
mov eax, dword [esp + 0x5c]
sbb eax, edi
mov edi, dword [esp + 0x60]
cmp edi, ecx
jne 0x4346b7
cmp dword [esp + 0x64], eax
jne 0x4346b7
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4345f4
dec ebp
mov eax, dword [esp + 0x1c]
cmp eax, ebp
jae 0x434666
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x434646
mov edi, dword [esi]
mov ecx, 0x1000
sub ecx, edx
add edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jne 0x434633
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x18]
mov dword [ecx + eax*4], 0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, 0x1000
sub ecx, edx
xor edx, edx
add ebx, ecx
mov ecx, dword [esp + 0x20]
cmp ebx, ecx
mov dword [esp + 0x14], edx
jae 0x434666
inc eax
cmp eax, ebp
mov dword [esp + 0x1c], eax
jb 0x4345fc
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x434854
cmp ebx, dword [esp + 0x20]
jae 0x434854
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x4346a7
mov ecx, dword [esp + 0x8c]
mov edi, dword [esi]
sub ecx, edx
add edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x14], edx
jmp 0x434854
cmp edi, dword [esp + 0x58]
jne 0x434803
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
jne 0x434803
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], esi
je 0x4346ed
dec ebp
mov eax, dword [esp + 0x18]
cmp ecx, ebp
jae 0x43473f
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x43471f
mov edi, dword [edi]
mov ecx, 0x1000
sub ecx, edx
add edi, edx
mov edx, ecx
mov esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov esi, 0x1000
sub esi, edx
xor edx, edx
add ebx, esi
mov esi, dword [esp + 0x20]
cmp ebx, esi
mov dword [esp + 0x14], edx
jae 0x43473f
inc ecx
cmp ecx, ebp
mov dword [esp + 0x1c], ecx
jb 0x4346f5
mov esi, dword [esp + 0x8c]
test esi, esi
je 0x43477f
cmp ebx, dword [esp + 0x20]
jae 0x43477f
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x434774
mov ecx, dword [esp + 0x8c]
mov edi, dword [edi]
sub ecx, edx
add edi, edx
mov edx, ecx
mov esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x24]
cmp edi, ebp
jae 0x434854
lea esi, [eax + edi*4]
mov ecx, dword [esi]
test ecx, ecx
je 0x4347d0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x78]
push eax
push edx
push ecx
call fcn.004348c0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
add esp, 0x14
cmp ecx, eax
jne 0x4347c2
mov byte [esp + 0x13], 1
mov edi, dword [esp + 0x24]
mov dword [esi], 0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, 0x1000
sub ecx, eax
mov eax, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x20]
cmp eax, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
jae 0x434854
inc edi
add esi, 4
cmp edi, ebp
mov dword [esp + 0x24], edi
jb 0x43478e
jmp 0x434854
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0xa0]
lea ecx, [esp + 0x27]
push esi
push ecx
push edx
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x38]
push ebp
lea edx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
call fcn.00434960
mov edx, dword [esp + 0x4c]
add esp, 0x38
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x434883
jmp 0x434373
mov edx, dword [esp + 0x18]
push edx
call fcn.004df7a0
mov eax, dword [esp + 0x30]
push eax
call fcn.004df7a0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004df7a0
mov edx, dword [esp + 0x30]
push edx
call fcn.004df7a0
mov al, byte [esp + 0x1b]
add esp, 8
test al, al
je 0x4348ac
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret
mov eax, dword [esp + 0x4c]
test eax, eax
jl 0x4348b7
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret