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

Disassembly:
sub esp, 0x68
mov eax, dword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x78]
push ebp
mov ebp, dword [eax + 0x36c4]
push esi
mov al, byte [ebx + 8]
xor esi, esi
test al, al
push edi
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], esi
jne 0x4255ce
mov edi, dword [esp + 0x8c]
mov eax, dword [ebx + 0x10]
mov dword [edi], eax
mov ebp, dword [ebp + 0x2c]
cmp ebp, esi
jne 0x42559d
mov ecx, dword [ebx + 0x10]
push ecx
call fcn.00487e60
mov edx, dword [esp + 0x8c]
add esp, 4
mov dword [edx], eax
mov ecx, dword [edi]
mov si, word [ebx + 0x14]
mov edi, eax
mov eax, ecx
add esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x90]
test eax, eax
je 0x425566
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x18]
push edx
call fcn.00487ea0
mov eax, dword [esp + 0x24]
push eax
call fcn.00487ea0
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00487ea0
mov edx, dword [esp + 0x30]
push edx
call fcn.00487ea0
mov eax, dword [esp + 0x4c]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
xor ecx, ecx
push eax
mov cx, word [ebx + 0x14]
push 0xffffffffffffffff
add ecx, ebx
push 0xffffffffffffffff
push ecx
push ebp
call fcn.00488120
mov eax, dword [esp + 0x90]
add esp, 0x14
cmp eax, esi
je 0x425546
mov edx, dword [edi]
push esi
push edx
call dword [eax + 4]
add esp, 8
jmp 0x425546
lea eax, [esp + 0x54]
mov dword [esp + 0x38], esi
push eax
push ebx
push ebp
call fcn.00424e80
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x18], eax
je 0x42554e
mov edi, dword [ebx + 0x28]
mov eax, dword [ebx + 0x2c]
mov ecx, edi
or ecx, eax
jne 0x425612
mov edi, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x14]
sub edi, ecx
sbb edx, eax
add edi, 1
adc edx, esi
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x90]
cmp eax, esi
jne 0x425627
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], ecx
jmp 0x425630
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x58], ecx
mov edx, dword [ebp + 0xc]
push eax
push ecx
push esi
push edx
mov dword [esp + 0x6c], eax
call fcn.004b74a0
mov ecx, eax
mov dword [esp + 0x68], eax
or ecx, edx
mov dword [esp + 0x6c], edx
jne 0x425672
mov eax, dword [esp + 0x8c]
mov edx, dword [ebx + 0x30]
mov dword [eax], edx
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov al, byte [ebx + 0x22]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov byte [0x551112], al
jmp 0x42569a
mov ecx, dword [0x550ca0]
mov esi, dword [esp + 0x8c]
sub ecx, eax
mov dword [esi], ecx
mov ecx, dword [0x550ca0]
sub ecx, eax
mov eax, dword [0x550ca4]
sbb eax, edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
mov ebx, 1
mov cl, byte [0x551112]
shl esi, cl
shl ebx, cl
test eax, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x30], ebx
jne 0x4256d9
add edi, 0x10000
push edi
call fcn.00487e70
mov edx, dword [esp + 0x8c]
add esp, 4
mov dword [esp + 0x14], eax
mov dword [edx], eax
mov al, byte [0x551112]
test al, al
jne 0x425992
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x5c]
cmp edi, dword [edx + 4]
jl 0x42554e
mov esi, dword [esp + 0x58]
jg 0x425705
cmp esi, dword [edx]
jb 0x42554e
mov ebx, dword [edx + 0x10]
mov ebp, dword [edx + 0x14]
lea eax, [edx + 0x10]
xor ecx, ecx
or ebx, ebp
mov dword [esp + 0x8c], ecx
je 0x42573c
cmp edi, dword [eax + 0xc]
jl 0x425735
jg 0x425727
cmp esi, dword [eax + 8]
jb 0x425735
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x1c]
add eax, 0x18
inc ecx
or ebx, ebp
jne 0x42571b
mov dword [esp + 0x8c], ecx
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov ebp, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
lea ecx, [eax + 0x10]
mov dword [esp + 0x88], ecx
mov ecx, ebp
or ecx, ebx
je 0x425795
mov esi, dword [eax]
mov edx, dword [esp + 0x58]
mov edi, dword [eax + 4]
mov ecx, dword [esp + 0x5c]
sub edx, esi
sbb ecx, edi
cmp ecx, ebx
ja 0x425795
jb 0x425773
cmp edx, ebp
jae 0x425795
mov ebp, dword [eax + 0xc]
mov ebx, dword [eax + 8]
test ebp, ebp
jl 0x425795
jg 0x425783
test ebx, ebx
jb 0x425795
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
sub ebx, esi
sbb ebp, edi
add ebx, ecx
adc ebp, eax
jmp 0x42579b
or ebx, 0xffffffff
or ebp, 0xffffffff
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
or edx, eax
je 0x425546
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x68]
xor eax, eax
mov esi, dword [ecx + 0xc]
lea edi, [esi - 1]
and edi, edx
mov edx, dword [esp + 0x64]
sub esi, edi
cmp eax, edx
jb 0x4257d3
ja 0x4257cf
cmp esi, dword [esp + 0x60]
jbe 0x4257d3
mov esi, dword [esp + 0x60]
mov eax, dword [ecx + 0x2c]
test eax, eax
jne 0x4257fc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x80]
push esi
push eax
push ebp
push ebx
push ecx
call fcn.00424b00
add esp, 0x14
test eax, eax
jle 0x42554e
jmp 0x42587b
cmp esi, dword [esp + 0x4c]
jle 0x42582b
mov edx, dword [esp + 0x20]
push edx
call fcn.00487ea0
lea eax, [esi + 0x10000]
push eax
call fcn.00487e60
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x42554e
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
push esi
push ecx
push ebp
push ebx
push edx
call fcn.00424b00
add esp, 0x14
test eax, eax
jle 0x42554e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push esi
push 0xffffffffffffffff
mov edx, dword [ecx + 0x2c]
add edi, eax
push 0xffffffffffffffff
push edi
push edx
call fcn.00488120
mov eax, dword [esp + 0x90]
add esp, 0x14
test eax, eax
je 0x42587b
push 0
push esi
call dword [eax + 4]
add esp, 8
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
add eax, esi
add ecx, esi
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
add ebp, esi
adc ebx, eax
sub ecx, esi
sbb edx, eax
mov dword [esp + 0x60], ecx
or ecx, edx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], edx
je 0x425546
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add edx, 1
adc ecx, eax
mov eax, dword [esp + 0x84]
add eax, 0x18
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
cmp ecx, dword [eax + 4]
ja 0x425546
jb 0x4258f3
cmp edx, dword [eax]
ja 0x425546
mov eax, dword [esp + 0x88]
mov esi, dword [eax]
mov edi, dword [eax + 4]
or esi, edi
mov esi, dword [esp + 0x8c]
je 0x42592b
cmp ecx, dword [eax + 0xc]
jl 0x425924
jg 0x425916
cmp edx, dword [eax + 8]
jb 0x425924
mov edi, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
add eax, 0x18
inc esi
or edi, ebx
jne 0x42590a
mov dword [esp + 0x8c], esi
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x18]
lea eax, [esi + eax*8]
mov ebp, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
lea esi, [eax + 0x10]
mov dword [esp + 0x88], esi
mov esi, ebp
or esi, ebx
je 0x425987
mov esi, dword [eax]
mov edi, dword [eax + 4]
sub edx, esi
sbb ecx, edi
cmp ecx, ebx
ja 0x425987
jb 0x42595e
cmp edx, ebp
jae 0x425987
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
test eax, eax
jl 0x425987
jg 0x42596e
test ecx, ecx
jb 0x425987
mov edx, dword [esp + 0x5c]
sub ecx, esi
mov esi, dword [esp + 0x58]
sbb eax, edi
add ecx, esi
adc eax, edx
mov ebx, ecx
mov ebp, eax
jmp 0x4257ab
or ebx, 0xffffffff
or ebp, 0xffffffff
jmp 0x4257ab
push esi
call fcn.00487e60
mov edi, eax
push esi
mov dword [esp + 0x24], edi
call fcn.00487e60
add esp, 8
mov dword [esp + 0x24], eax
test edi, edi
je 0x42554e
test eax, eax
je 0x42554e
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
or ecx, eax
je 0x425546
lea eax, [ebx - 1]
not eax
mov dword [esp + 0x70], eax
jmp 0x4259da
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
push 0
mov eax, dword [edx + 0xc]
push eax
push ecx
push ebx
call fcn.004b7610
mov edi, eax
mov eax, dword [esp + 0x70]
and edi, eax
mov ebp, edx
xor eax, eax
mov dword [esp + 0x58], edi
and ebp, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x5c], ebp
cmp ebp, dword [eax + 0x1c]
ja 0x425546
jb 0x425a24
cmp edi, dword [eax + 0x18]
ja 0x425546
mov edx, dword [esp + 0x64]
lea eax, [esi - 1]
and eax, ebx
mov ecx, esi
mov dword [esp + 0x50], eax
sub ecx, eax
xor eax, eax
mov dword [esp + 0x4c], ecx
cmp eax, edx
jb 0x425a4f
ja 0x425a47
cmp ecx, dword [esp + 0x60]
jbe 0x425a4f
mov edx, dword [esp + 0x60]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x18]
cmp ebp, dword [edx + 4]
jl 0x425e01
jg 0x425a66
cmp edi, dword [edx]
jb 0x425e01
mov esi, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
lea eax, [edx + 0x10]
xor ecx, ecx
or esi, ebx
mov dword [esp + 0x8c], ecx
je 0x425a9d
cmp ebp, dword [eax + 0xc]
jl 0x425a96
jg 0x425a88
cmp edi, dword [eax + 8]
jb 0x425a96
mov esi, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
add eax, 0x18
inc ecx
or esi, ebx
jne 0x425a7c
mov dword [esp + 0x8c], ecx
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov edx, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
lea ecx, [eax + 0x10]
or edx, ebx
mov dword [esp + 0x88], ecx
je 0x425b10
mov esi, dword [eax]
mov edx, dword [esp + 0x58]
mov edi, dword [eax + 4]
sub edx, esi
mov ecx, ebp
sbb ecx, edi
cmp ecx, ebx
ja 0x425b10
jb 0x425ad7
mov ecx, dword [esp + 0x88]
cmp edx, dword [ecx]
jae 0x425b10
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
xor eax, eax
cmp edx, eax
jl 0x425b04
jg 0x425ae9
cmp ecx, eax
jb 0x425b04
sub ecx, esi
sbb edx, edi
mov edi, dword [esp + 0x58]
add ecx, edi
adc edx, ebp
mov esi, ecx
and esi, edx
cmp esi, 0xffffffff
jne 0x425b1e
mov dword [esp + 0x2c], eax
jmp 0x425b26
or ecx, 0xffffffff
or edx, 0xffffffff
mov dword [esp + 0x2c], eax
jmp 0x425b26
or ecx, 0xffffffff
or edx, 0xffffffff
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x425b26
mov dword [esp + 0x2c], 1
mov edi, dword [esp + 0x30]
xor ebp, ebp
xor esi, esi
cmp edi, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], esi
jbe 0x425cc3
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x425b60
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
mov edi, ecx
and edi, edx
cmp edi, 0xffffffff
jne 0x425b96
mov ecx, dword [eax + 0xc]
xor eax, eax
mov edi, ecx
mov edx, ecx
imul edi, esi
add edi, ebx
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 + 0x2c]
test eax, eax
je 0x425be1
test ebp, ebp
jne 0x425be1
mov ebp, 1
jmp 0x425bdd
mov eax, dword [eax + 0xc]
push eax
imul eax, esi
add eax, ebx
push eax
mov eax, dword [esp + 0x88]
push edx
push ecx
push eax
call fcn.00424b00
add esp, 0x14
test eax, eax
jle 0x42554e
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
inc ecx
test eax, eax
mov dword [esp + 0x44], ecx
je 0x425be1
test ebp, ebp
jne 0x425bd3
inc dword [esp + 0x34]
cmp ebp, 1
jne 0x425be1
mov ebp, 2
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x30]
lea eax, [ecx - 1]
cmp esi, eax
je 0x425cc3
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x5c]
add esi, 1
mov ecx, dword [eax]
mov edi, dword [eax + 4]
adc edx, 0
or ecx, edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edx
je 0x425c3e
mov ecx, dword [esp + 0x8c]
cmp edx, dword [eax + 0xc]
jl 0x425c37
jg 0x425c29
cmp esi, dword [eax + 8]
jb 0x425c37
mov edi, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
add eax, 0x18
inc ecx
or edi, ebx
jne 0x425c1d
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0x8c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*8]
mov ebp, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
lea ecx, [eax + 0x10]
mov dword [esp + 0x88], ecx
mov ecx, ebp
or ecx, ebx
je 0x425ca4
mov esi, dword [eax]
mov edx, dword [esp + 0x58]
mov edi, dword [eax + 4]
mov ecx, dword [esp + 0x5c]
sub edx, esi
sbb ecx, edi
cmp ecx, ebx
ja 0x425ca4
jb 0x425c80
cmp edx, ebp
jae 0x425ca4
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
test eax, eax
jl 0x425ca4
jg 0x425c90
test ecx, ecx
jb 0x425ca4
mov edx, dword [esp + 0x5c]
sub ecx, esi
mov esi, dword [esp + 0x58]
sbb eax, edi
add ecx, esi
adc eax, edx
mov edx, eax
jmp 0x425caa
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
inc eax
cmp eax, esi
mov dword [esp + 0x40], eax
jb 0x425b50
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x425d44
mov eax, dword [esp + 0x44]
test eax, eax
je 0x425d44
cmp ebp, 1
jne 0x425d44
cmp eax, dword [esp + 0x30]
jae 0x425d44
cmp eax, dword [esp + 0x34]
jne 0x425d44
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov ecx, ebx
xor eax, eax
mov esi, ecx
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x64]
xor eax, eax
cmp ecx, eax
ja 0x425d18
jb 0x425d12
cmp dword [esp + 0x60], ebx
jae 0x425d18
mov esi, dword [esp + 0x60]
jmp 0x425d1a
mov esi, ebx
push ebx
push edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
imul eax, dword [esp + 0x3c]
push eax
push ecx
call fcn.00424b90
add esp, 0x10
cmp eax, esi
jb 0x42554e
mov edx, dword [esp + 0x24]
jmp 0x425d62
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
test eax, eax
jne 0x425d89
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov esi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x4c]
jmp 0x425db6
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
push esi
push 0xffffffffffffffff
add ecx, edx
push 0xffffffffffffffff
push ecx
push eax
call fcn.00488120
mov eax, dword [esp + 0x90]
add esp, 0x14
test eax, eax
je 0x425db6
push 0
push esi
call dword [eax + 4]
add esp, 8
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
add eax, esi
add ecx, esi
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
add ebp, esi
adc ebx, eax
sub ecx, esi
sbb edx, eax
mov dword [esp + 0x60], ecx
or ecx, edx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], edx
jne 0x4259d6
jmp 0x425546
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x68
ret