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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d453c
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push esi
push edi
mov eax, dword [0x511070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x14], ebx
cmp dword [ebp + 0x10], 1
jne 0x426033
cmp dword [ebp + 0x1c], 4
jne 0x426033
call fcn.004255c0
test al, al
jne 0x425943
mov eax, 0x8007000e
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov byte [ebp - 0xd], 0
movlpd qword [ebp - 0x70], xmm0
test eax, eax
je 0x42597b
mov eax, dword [eax]
test eax, eax
je 0x42597b
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
test edx, edx
ja 0x425987
jb 0x425975
cmp ecx, 0x1000000
ja 0x425987
mov byte [ebp - 0xd], 1
jmp 0x425987
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x6c], ebx
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0
mov esi, dword [edi]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
test esi, esi
je 0x4259a8
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x4259b5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0x24], esi
lea eax, [ebx + 0x10]
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov byte [ebx + 0x34], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x4259f1
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx + 0x4c]
test ecx, ecx
je 0x4259fe
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0x4c], esi
mov eax, dword [ebx + 0x48]
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov byte [ebx + 0x5c], 0
mov esi, dword [edi + 8]
test esi, esi
je 0x425a34
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx + 0x74]
test ecx, ecx
je 0x425a41
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0x74], esi
mov eax, dword [ebx + 0x70]
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x68], eax
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x78], 0
mov dword [ebx + 0x7c], 0
mov byte [ebx + 0x84], 0
mov esi, dword [edi + 0xc]
test esi, esi
je 0x425a7a
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx + 0xb4]
test ecx, ecx
je 0x425a8a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0xb4], esi
mov esi, dword [ebp - 0x14]
lea eax, [esi + 0x88]
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.004250a0
lea edi, [esi + 0xc8]
mov dword [ebp - 0x1c], 0
mov ecx, 0x102
mov eax, 0x400
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x1c]
push edx
mov byte [ebp - 4], 1
push 0x4ed280
mov eax, dword [ecx]
push ecx
call dword [eax]
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
movlpd qword [ebp - 0x68], xmm0
xor edi, edi
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x68]
movlpd qword [ebp - 0x28], xmm0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
movlpd qword [ebp - 0x60], xmm0
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
movlpd qword [ebp - 0x78], xmm0
mov byte [ebp + 0x13], 0
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x18], ecx
nop dword [eax]
mov eax, 0x20000
xor ebx, ebx
sub eax, edi
je 0x425b6a
nop dword [eax + eax]
mov edx, dword [ebp - 0x48]
lea esi, [ebp - 0x5c]
push esi
mov esi, dword [ebp - 0x14]
push eax
mov ecx, dword [edx]
mov eax, dword [esi + 8]
add eax, ebx
add eax, edi
push eax
push edx
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x425ffd
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x14]
test eax, eax
je 0x425b6a
add ebx, eax
mov eax, 0x20000
sub eax, ebx
sub eax, edi
jne 0x425b30
lea eax, [ebx + edi]
mov dword [ebp - 0x58], eax
cmp eax, 5
jb 0x425f29
mov ebx, dword [ebp + 8]
xor edx, edx
add eax, 0xfffffffb
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 4]
mov dl, byte [edx + eax]
mov eax, dword [ebx]
mov byte [ebp + 0xf], dl
mov byte [ecx + eax], dl
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
jne 0x425bc2
cmp dword [ebx + 0xc], eax
je 0x425bc2
mov ecx, ebx
call fcn.00424500
test eax, eax
jne 0x425f18
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 4]
jne 0x425ba8
mov dl, byte [ebp + 0xf]
mov al, dl
and al, 0xfe
cmp al, 0xe8
je 0x425be0
cmp byte [ebp + 0x13], 0xf
jne 0x425bd8
mov al, dl
and al, 0xf0
cmp al, 0x80
je 0x425be0
mov byte [ebp + 0x13], dl
jmp 0x425eb4
mov ecx, dword [esi + 8]
mov edi, dword [ebp - 0x2c]
add ecx, edi
mov dl, byte [ecx + 4]
movzx esi, byte [ecx + 3]
movzx eax, dl
shl eax, 8
or esi, eax
mov byte [ebp + 0x1f], dl
movzx eax, byte [ecx + 2]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 1]
mov ecx, dword [ebp - 0x40]
shl esi, 8
add ecx, 5
or esi, eax
mov dword [ebp - 0x4c], esi
lea eax, [esi + edi]
add ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x54], ecx
test eax, eax
je 0x425d69
xor ebx, ebx
add edi, dword [ebp - 0x78]
adc ebx, dword [ebp - 0x74]
cmp dword [ebp + 0x14], ebx
ja 0x425cd3
jb 0x425c46
mov ecx, dword [ebp - 0x18]
cmp ecx, edi
jae 0x425cd6
mov ecx, dword [eax]
lea edx, [ebp - 0x80]
push edx
push dword [ebp - 0x34]
push dword [ebp - 0x30]
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x425c7a
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x24], ecx
add ecx, dword [ebp - 0x80]
mov dword [ebp - 0x20], edx
adc edx, dword [ebp - 0x7c]
add dword [ebp - 0x30], 1
adc dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
jmp 0x425cb7
cmp esi, 1
je 0x425c8b
cmp esi, 0x80004001
jne 0x425ffd
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x425c9d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov dword [ebp - 0x1c], eax
xorps xmm0, xmm0
or ecx, 0xffffffff
movlpd qword [ebp - 0x28], xmm0
or edx, 0xffffffff
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x24], esi
mov dword [ebp + 0x14], edx
mov dword [ebp - 0x18], ecx
cmp edx, ebx
jb 0x425c46
ja 0x425ccb
cmp ecx, edi
jb 0x425c46
mov esi, dword [ebp - 0x4c]
mov dl, byte [ebp + 0x1f]
jmp 0x425cd6
mov ecx, dword [ebp - 0x18]
test eax, eax
jne 0x425d18
cmp byte [ebp - 0xd], al
je 0x425d08
cmp eax, dword [ebp - 0x38]
ja 0x425d11
jb 0x425cee
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x54], eax
jae 0x425d11
mov ebx, dword [ebp + 8]
mov al, 1
mov cl, byte [ebp + 0xf]
cmp cl, 0xe8
jne 0x425da4
movzx edx, byte [ebp + 0x13]
jmp 0x425db2
test dl, dl
je 0x425cee
cmp dl, 0xff
je 0x425cee
mov ebx, dword [ebp + 8]
xor al, al
jmp 0x425cf3
mov edx, ecx
mov ecx, dword [ebp + 0x14]
sub edx, dword [ebp - 0x24]
sbb ecx, dword [ebp - 0x20]
mov dword [ebp - 0x4c], ecx
jne 0x425d57
cmp edx, 0x1000000
ja 0x425d57
mov eax, esi
cdq
add eax, edi
adc edx, ebx
add eax, 5
adc edx, 0
cmp edx, dword [ebp - 0x20]
jb 0x425d11
ja 0x425d49
cmp eax, dword [ebp - 0x24]
jb 0x425d11
cmp edx, dword [ebp + 0x14]
ja 0x425d11
jb 0x425cee
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
jmp 0x425cec
mov al, byte [ebp + 0x1f]
test al, al
je 0x425cee
cmp al, 0xff
je 0x425cee
mov ebx, dword [ebp + 8]
xor al, al
jmp 0x425cf3
cmp byte [ebp - 0xd], 0
je 0x425d8c
xor eax, eax
cmp eax, dword [ebp - 0x38]
ja 0x425d85
jb 0x425cf1
cmp ecx, dword [ebp - 0x3c]
jb 0x425cf1
xor al, al
jmp 0x425cf3
test dl, dl
je 0x425cf1
cmp dl, 0xff
je 0x425cf1
xor al, al
jmp 0x425cf3
xor edx, edx
cmp cl, 0xe9
setne dl
add edx, 0x100
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x14]
test al, al
je 0x425e6c
mov ecx, dword [edi + 0x10]
mov eax, ecx
shr eax, 0xb
imul eax, dword [esi + edx*4 + 0xc8]
add dword [edi + 8], eax
adc dword [edi + 0xc], 0
sub ecx, eax
mov dword [edi + 0x10], ecx
mov ecx, dword [esi + edx*4 + 0xc8]
mov eax, ecx
shr eax, 5
sub ecx, eax
mov dword [esi + edx*4 + 0xc8], ecx
mov eax, dword [edi + 0x10]
cmp eax, 0x1000000
jae 0x425e08
shl eax, 8
mov ecx, edi
mov dword [edi + 0x10], eax
call fcn.004250f0
cmp byte [ebp + 0xf], 0xe8
mov eax, 0x60
mov ecx, 0x38
mov edi, 0x18
cmove eax, ecx
add esi, eax
mov edx, dword [ebp - 0x54]
mov ecx, edi
mov eax, dword [esi]
shr edx, cl
mov ecx, dword [esi + 4]
mov byte [ecx + eax], dl
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jne 0x425e57
cmp dword [esi + 0xc], eax
je 0x425e57
nop
mov ecx, esi
call fcn.00424500
test eax, eax
jne 0x425f18
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x425e40
sub edi, 8
jns 0x425e20
mov al, byte [ebp + 0x1f]
mov esi, dword [ebp - 0x14]
mov byte [ebp + 0x13], al
mov eax, 5
jmp 0x425eb9
mov eax, dword [edi + 0x10]
mov ecx, 0x800
shr eax, 0xb
imul eax, dword [esi + edx*4 + 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [esi + edx*4 + 0xc8]
sub ecx, eax
shr ecx, 5
add ecx, eax
mov dword [esi + edx*4 + 0xc8], ecx
mov eax, dword [edi + 0x10]
cmp eax, 0x1000000
jae 0x425eae
shl eax, 8
mov ecx, edi
mov dword [edi + 0x10], eax
call fcn.004250f0
mov dh, byte [ebp + 0xf]
mov byte [ebp + 0x13], dh
mov eax, 1
mov edx, dword [ebp - 0x2c]
add edx, eax
mov dword [ebp - 0x2c], edx
cmp edx, dword [ebp - 0x64]
jbe 0x425b87
add dword [ebp - 0x40], edx
add dword [ebp - 0x78], edx
mov ecx, dword [ebp + 0x20]
adc dword [ebp - 0x74], 0
test ecx, ecx
je 0x425ef4
mov eax, dword [ecx]
lea edx, [ebp - 0x78]
push 0
push edx
push ecx
call dword [eax + 0xc]
mov esi, eax
test esi, esi
jne 0x425ffd
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x58]
xor edi, edi
mov esi, dword [ebp - 0x14]
cmp edx, ebx
jae 0x425b20
mov ecx, dword [esi + 8]
mov al, byte [ecx + edx]
inc edx
mov byte [ecx + edi], al
inc edi
cmp edx, ebx
jb 0x425f04
jmp 0x425b20
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push 0x50e7ac
push eax
call fcn.004a8aba
xor esi, esi
test eax, eax
je 0x425ff3
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 8]
mov bl, byte [esi + eax]
mov eax, dword [edi]
mov byte [ecx + eax], bl
inc dword [edi + 4]
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jne 0x425f6a
cmp dword [edi + 0xc], eax
je 0x425f6a
mov ecx, edi
call fcn.00424500
test eax, eax
jne 0x425f18
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 4]
jne 0x425f57
cmp bl, 0xe8
jne 0x425f75
movzx edx, byte [ebp + 0x13]
jmp 0x425f94
cmp bl, 0xe9
jne 0x425f81
mov edx, 0x100
jmp 0x425f94
cmp byte [ebp + 0x13], 0xf
jne 0x425fe6
mov al, bl
and al, 0xf0
cmp al, 0x80
jne 0x425fe6
mov edx, 0x101
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
shr eax, 0xb
imul eax, dword [ecx + edx*4 + 0xc8]
mov dword [ecx + 0x98], eax
mov eax, dword [ecx + edx*4 + 0xc8]
mov ecx, 0x800
sub ecx, eax
shr ecx, 5
add ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + edx*4 + 0xc8], ecx
lea ecx, [eax + 0x88]
mov eax, dword [ecx + 0x10]
cmp eax, 0x1000000
jae 0x425fe6
shl eax, 8
mov dword [ecx + 0x10], eax
call fcn.004250f0
inc esi
mov byte [ebp + 0x13], bl
cmp esi, dword [ebp - 0x58]
jb 0x425f36
mov ecx, dword [ebp - 0x14]
call fcn.00425820
mov esi, eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x42600e
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], 9
call fcn.004251f0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, 0x80070057
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c