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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b1de0
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push ebp
call fcn.0041b3f0
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, edi
mov eax, dword [esi + 0x24]
or al, 1
mov dword [esi + 0x24], eax
call fcn.0044af90
neg eax
sbb eax, eax
inc eax
push eax
mov eax, dword [esp + 0x50]
push esi
push eax
call fcn.00422250
add esp, 0xc
test eax, eax
je 0x422225
mov esi, dword [esp + 0x64]
xor ebx, ebx
mov ecx, esi
mov dword [esp + 0x18], ebp
call fcn.0044af90
test eax, eax
jbe 0x421c2a
mov ecx, esi
call fcn.0044b340
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x18], ebx
call fcn.0044af90
mov dword [ebx], eax
mov ebx, 1
mov ecx, edi
mov dword [esp + 0x1c], ebp
call fcn.0044af90
test eax, eax
jbe 0x421c50
mov ecx, edi
call fcn.0044b340
mov esi, eax
mov ecx, edi
mov dword [esp + 0x1c], esi
call fcn.0044af90
mov dword [esi], eax
inc ebx
mov eax, dword [esp + 0x6c]
cmp eax, ebp
je 0x421c8a
mov edi, dword [esp + 0x70]
cmp edi, ebp
je 0x421c8a
xor esi, esi
cmp word [eax + 0xc], bp
jbe 0x421c8a
mov ecx, dword [edi]
push ecx
call fcn.00423df0
add esp, 4
test eax, eax
je 0x421c78
inc ebx
mov eax, dword [esp + 0x6c]
xor edx, edx
inc esi
add edi, 0x28
mov dx, word [eax + 0xc]
cmp esi, edx
jl 0x421c68
mov eax, ebx
lea ecx, [esp + 0x14]
and eax, 0xffff
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
lea edi, [eax + eax*4]
shl edi, 3
lea esi, [edi + 0x10]
mov dword [esp + 0x20], esi
call fcn.0044ae30
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x4c], ebp
call fcn.0044afa0
lea ecx, [esp + 0x14]
call fcn.0044b330
mov ebp, eax
mov eax, dword [esp + 0x6c]
mov word [ebp + 0xc], bx
lea ebx, [edi + 0xd8]
xor edi, edi
mov dword [ebp + 4], esi
cmp eax, edi
mov word [ebp], 1
mov word [ebp + 0xe], 0x28
lea esi, [ebp + 0x10]
mov dword [esp + 0x30], edi
je 0x421d63
mov ecx, dword [esp + 0x70]
cmp ecx, edi
je 0x421d63
cmp word [eax + 0xc], di
mov dword [esp + 0x10], edi
jbe 0x421d63
lea edi, [ecx + 0xc]
mov ecx, dword [edi - 0xc]
push ecx
call fcn.00423df0
add esp, 4
test eax, eax
je 0x421d45
mov edx, dword [edi - 0xc]
mov dword [esi], edx
mov al, byte [edi - 8]
mov byte [esi + 4], al
mov ecx, dword [edi]
mov eax, dword [esp + 0x30]
mov dword [esi + 0x10], ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], eax
mov edx, dword [edi - 4]
add ebx, ecx
adc eax, 0
mov dword [esi + 8], edx
mov dword [esp + 0x30], eax
add esi, 0x28
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
xor edx, edx
inc eax
mov dx, word [ecx + 0xc]
add edi, 0x28
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x421d09
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x421dad
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], esi
mov dword [esi], 3
mov byte [esi + 4], 1
call fcn.0044af90
test eax, eax
jbe 0x421d91
mov ecx, dword [esp + 0x64]
call fcn.0044af90
jmp 0x421d93
xor eax, eax
mov ecx, dword [esi + 8]
mov dword [esi + 0x10], ebx
or ecx, 1
add ebx, eax
mov dword [esi + 0x14], edi
mov dword [esi + 0xc], eax
mov dword [esi + 8], ecx
adc edi, 0
add esi, 0x28
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x421dee
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x28], esi
mov dword [esi], 4
mov byte [esi + 4], 2
call fcn.0044af90
test eax, eax
jbe 0x421ddb
mov ecx, dword [esp + 0x68]
call fcn.0044af90
jmp 0x421ddd
xor eax, eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
or al, 1
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edi
mov dword [esi + 8], eax
mov edx, dword [ebp + 4]
push edx
push ebp
call fcn.004289c0
mov ecx, dword [esp + 0x5c]
mov dword [ebp + 8], eax
mov ax, word [esp + 0x28]
add esp, 8
mov word [ecx + 0x12], ax
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x421efb
mov eax, dword [esp + 0x70]
test eax, eax
je 0x421efb
mov ebx, dword [esp + 0x4c]
lea edx, [esp + 0x20]
push 1
push edx
push 0
push ebx
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov ecx, esi
call fcn.0044b340
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.0044af90
mov edi, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], 0
cmp word [eax + 0xc], 0
jbe 0x421ee6
mov ecx, dword [esp + 0x70]
lea esi, [ecx + 0xc]
mov edx, dword [esi - 0xc]
push edx
call fcn.00423df0
add esp, 4
test eax, eax
je 0x421ebb
mov eax, dword [esi + 4]
push 0
push 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esi]
cmp edi, eax
jb 0x421ed7
mov ecx, dword [esp + 0x4c]
push eax
push ecx
push ebx
call fcn.0041e220
add esp, 0xc
test eax, eax
je 0x421ed7
mov eax, dword [esi]
mov edx, dword [esp + 0x4c]
add edx, eax
sub edi, eax
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
xor edx, edx
inc eax
mov dx, word [ecx + 0xc]
add esi, 0x28
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x421e75
jmp 0x421ee6
push 0x2ecc
push 0x10
call fcn.0041b3d0
add esp, 8
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x20]
push 0
push edx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x421eff
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x421f7c
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x30], 0
mov ecx, dword [esi + 8]
or ecx, 4
mov dword [esi + 8], ecx
xor ecx, ecx
mov dword [esp + 0x31], ecx
mov dword [esp + 0x35], ecx
mov dword [esp + 0x39], ecx
mov word [esp + 0x3d], cx
mov byte [esp + 0x3f], cl
mov ecx, dword [eax]
push ecx
push eax
push 1
call fcn.0046e0b0
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x50]
push edx
push esi
push edi
push ebx
call fcn.004226f0
add esp, 0x10
test eax, eax
je 0x422214
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add esi, 0x18
mov dword [esi], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
jmp 0x421f80
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x421ffb
mov esi, dword [esp + 0x28]
test esi, esi
je 0x421ffb
mov edx, dword [esi + 8]
xor ecx, ecx
mov dword [esp + 0x2d], ecx
or edx, 4
mov dword [esp + 0x31], ecx
mov dword [esi + 8], edx
mov dword [esp + 0x35], ecx
lea edx, [esp + 0x2c]
mov word [esp + 0x39], cx
push edx
mov byte [esp + 0x3f], cl
mov ecx, dword [eax]
push ecx
push eax
push 1
mov byte [esp + 0x3c], 0
call fcn.0046e0b0
mov edx, dword [esp + 0x68]
push edx
push esi
push edi
push ebx
call fcn.004226f0
add esp, 0x10
test eax, eax
je 0x422214
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add esi, 0x18
mov dword [esi], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
lea ecx, [esp + 0x14]
push ebp
push ecx
push edi
push ebx
call fcn.00422490
add esp, 0x10
test eax, eax
je 0x422214
mov edi, dword [esp + 0x78]
test edi, edi
je 0x422196
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x422196
mov esi, dword [esp + 0x54]
cmp word [edi + 0xc], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
jbe 0x42206c
add eax, 0xc
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov ebp, dword [eax]
add ecx, ebp
mov ebp, dword [esp + 0x10]
adc edx, 0
inc ebp
mov dword [esp + 0x10], ebp
xor ebp, ebp
mov bp, word [edi + 0xc]
add eax, 0x28
cmp dword [esp + 0x10], ebp
jl 0x422047
mov dx, word [edi + 0xc]
lea eax, [esp + 0x64]
imul dx, dx, 0x28
push 1
push eax
add edx, 0x10
push 0
push ebx
mov word [esi + 0x14], dx
mov dword [esp + 0x74], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x74], eax
mov ecx, ebp
call fcn.0044b340
mov ecx, ebp
mov dword [esp + 0x6c], eax
call fcn.0044af90
cmp word [edi + 0xc], 0
mov ebp, eax
mov dword [esp + 0x10], 0
jbe 0x422140
mov ecx, dword [esp + 0x7c]
lea esi, [ecx + 0xc]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, 0x20
call fcn.00438dc0
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 4]
lea edx, [esp + 0x4c]
push 0
push edx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esi]
cmp ebp, eax
jb 0x42212d
mov ecx, dword [esp + 0x6c]
push eax
push ecx
push ebx
call fcn.0041e220
add esp, 0xc
test eax, eax
je 0x42212d
mov eax, dword [esi]
mov ecx, dword [esp + 0x6c]
add ecx, eax
sub ebp, eax
mov eax, dword [esp + 0x10]
xor edx, edx
mov dx, word [edi + 0xc]
inc eax
add esi, 0x28
cmp eax, edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x10], eax
jl 0x4220c8
jmp 0x42213c
push 0x2f27
push 0x10
call fcn.0041b3d0
add esp, 8
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0x64]
push 0
push eax
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor edx, edx
lea ecx, [esp + 0x70]
mov dx, word [esi + 0x14]
push edx
push edi
call fcn.0044ae40
lea eax, [esp + 0x70]
push edi
mov edi, dword [esp + 0x54]
push eax
push esi
push edi
push ebx
mov byte [esp + 0x58], 1
call fcn.004225c0
add esp, 0x14
mov byte [esp + 0x44], 0
test eax, eax
lea ecx, [esp + 0x70]
je 0x42220f
call fcn.0044af00
jmp 0x42219e
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
push ecx
push edi
push ebx
call fcn.004223c0
add esp, 0xc
test eax, eax
je 0x422214
push esi
push edi
push ebx
call fcn.004222f0
add esp, 0xc
test eax, eax
je 0x422214
mov ebp, dword [edi + 0x24]
mov ecx, dword [esp + 0x68]
and ebp, 0xfffffffe
mov dword [edi + 0x24], ebp
call fcn.0044af90
neg eax
sbb eax, eax
inc eax
push eax
push edi
push ebx
call fcn.00422250
add esp, 0xc
mov dword [esp + 0x44], 0xffffffff
test eax, eax
lea ecx, [esp + 0x14]
je 0x422220
call fcn.0044af00
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret
call fcn.0044af00
mov dword [esp + 0x44], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.0044af00
push 0x2f49
push 0x10
call fcn.0041b3d0
mov ecx, dword [esp + 0x44]
add esp, 8
xor eax, eax
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret