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

Disassembly:
sub esp, 0x78
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov eax, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
cmp word [esp + 0x9c], si
je 0x48141b
test byte [eax + 0x3c], 0x80
je 0x48141b
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edx, dword [esp + 0x90]
movzx eax, word [edx]
mov dword [esp + 0x44], eax
cmp ax, 0x3f
ja 0x481411
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x17], 1
mov dword [esp + 0x20], ecx
call fcn.004acad0
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x30], esi
lea esp, [esp]
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x64]
ja 0x481a13
jb 0x48148e
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x60]
jae 0x481a13
movzx eax, word [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jg 0x481a13
test ecx, ecx
jle 0x4814b8
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x50], esi
or dword [esp + 0x54], edx
cmp ecx, eax
jge 0x4814cb
mov eax, dword [esp + 0x94]
mov edx, dword [eax + 0x18]
mov edx, dword [edx + ecx*4]
jmp 0x4814d2
mov edx, dword [esp + 0xa0]
test dword [edx + 0x24], 0x400
mov dword [esp + 0x1c], edx
jne 0x481a0d
movzx eax, byte [edx + 0x10]
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
shl eax, 4
mov eax, dword [eax + ecx + 0x38]
xor ecx, ecx
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
jle 0x48162c
mov dword [esp + 0x28], ecx
mov eax, 1
xor edx, edx
call fcn.004acad0
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x48]
mov ecx, ebp
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x481610
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx]
call fcn.0044d2e0
mov edi, eax
cmp byte [edi], 0x9a
jne 0x481610
mov ecx, dword [esp + 0x34]
cmp dword [edi + 0x1c], ecx
jne 0x481610
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
movsx ecx, word [edi + 0x20]
push 0
not eax
not edx
push eax
push edx
mov edx, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x44]
add edx, 0x148
mov eax, 0x82
call fcn.0047b7f0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x481610
test byte [esi + 0x12], 2
je 0x481608
cmp word [edi + 0x20], 0
jl 0x481608
mov edx, dword [esp + 0x90]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + eax]
push edx
call fcn.0044d310
add esp, 4
test eax, eax
jne 0x4815d7
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 8]
mov edi, dword [eax]
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi]
call fcn.0044d310
add esp, 4
test eax, eax
jne 0x4815f8
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 8]
mov eax, dword [eax]
push eax
push edi
call fcn.00423340
add esp, 8
test eax, eax
jne 0x481610
or dword [esp + 0x48], ebx
or dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x24]
add dword [esp + 0x28], 0x18
inc ecx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
jl 0x481513
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x24]
test eax, 0x1000
jne 0x4818e7
test eax, 0x100
je 0x481650
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], edi
lea eax, [edi + 1]
jmp 0x481684
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x481411
test byte [ecx + 0x38], 4
jne 0x481411
movzx edx, word [ecx + 0x32]
cmp byte [ecx + 0x36], 0
movzx eax, word [ecx + 0x34]
mov dword [esp + 0x3c], edx
setne byte [esp + 0x17]
mov edi, ecx
movzx esi, ax
xor edx, edx
mov byte [esp + 0x1a], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x1b], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], esi
test esi, esi
jle 0x4818e7
jmp 0x4816b0
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 0x18]
cmp edx, ecx
jge 0x4816e3
cmp word [eax + 0x1a], 0
jne 0x4816e3
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test al, 0x82
je 0x4816e3
test al, al
jns 0x4818d5
mov byte [esp + 0x17], 0
jmp 0x4818d5
test edi, edi
je 0x481709
mov eax, dword [edi + 4]
movsx esi, word [eax + edx*2]
mov eax, dword [edi + 0x1c]
mov al, byte [edx + eax]
mov byte [esp + 0x18], al
mov eax, dword [edi + 0xc]
movsx eax, word [eax + 0x24]
mov dword [esp + 0x28], esi
cmp esi, eax
jne 0x481715
jmp 0x48170e
mov byte [esp + 0x18], 0
or esi, 0xffffffff
mov dword [esp + 0x28], esi
cmp byte [esp + 0x17], 0
je 0x481739
test esi, esi
jl 0x481739
cmp edx, ecx
jl 0x481739
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 4]
lea edx, [esi + esi*2]
cmp byte [eax + edx*8 + 0x14], 0
jne 0x481739
mov byte [esp + 0x17], 0
mov ebp, dword [esp + 0x90]
xor esi, esi
mov bl, 1
xor edi, edi
cmp esi, dword [esp + 0x20]
jge 0x481818
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.004acad0
and eax, dword [esp + 0x48]
and edx, dword [esp + 0x4c]
or eax, edx
jne 0x48180c
mov ecx, dword [ebp + 4]
mov ecx, dword [edi + ecx]
mov eax, ecx
test eax, eax
je 0x4817a4
lea ebx, [ebx]
mov edx, dword [eax + 4]
test edx, 0x1000
je 0x4817a4
test edx, 0x40000
je 0x48179d
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x4817a0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x481780
test dword [esp + 0x98], 0x300
jne 0x4817b3
xor bl, bl
cmp byte [eax], 0x9a
jne 0x48180c
mov edx, dword [esp + 0x34]
cmp dword [eax + 0x1c], edx
jne 0x48180c
movsx edx, word [eax + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
jne 0x48180c
test eax, eax
jl 0x481843
mov eax, dword [esp + 0x8c]
mov edx, dword [eax]
push edx
call fcn.0044d310
add esp, 4
test eax, eax
jne 0x4817ee
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x2c]
mov edx, dword [edx + ecx*4]
mov eax, dword [eax]
push edx
push eax
call fcn.00423340
add esp, 8
test eax, eax
je 0x481843
inc esi
add edi, 0x18
test bl, bl
jne 0x481746
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x481829
movzx edx, word [esp + 0x3c]
cmp eax, edx
jge 0x48182e
mov byte [esp + 0x17], 0
cmp byte [esp + 0x1b], 0
je 0x4818e7
mov byte [esp + 0x17], 1
jmp 0x4818f2
mov edx, dword [esp + 0x8c]
mov ecx, 0x100
test word [edx + 0x22], cx
jne 0x4818a7
cmp byte [esp + 0x1a], 0
je 0x481872
mov al, byte [esp + 0x18]
xor al, byte [esp + 0x19]
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*2]
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x481818
jmp 0x4818a7
mov ecx, dword [ebp + 4]
lea eax, [esi + esi*2]
mov al, byte [ecx + eax*8 + 0xc]
xor al, byte [esp + 0x18]
mov byte [esp + 0x19], al
je 0x4818a2
mov ecx, dword [esp + 0x30]
mov eax, 1
xor edx, edx
call fcn.004acad0
mov ecx, dword [esp + 0xa4]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x1a], 1
cmp dword [esp + 0x28], 0
jge 0x4818b3
mov byte [esp + 0x1b], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.004acad0
or dword [esp + 0x48], eax
or dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
inc edx
cmp edx, esi
mov dword [esp + 0x2c], edx
jl 0x4816b0
jmp 0x48182e
cmp byte [esp + 0x17], 0
je 0x4819fc
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
or dword [esp + 0x58], ecx
mov edx, dword [eax + 0xc]
or dword [esp + 0x5c], edx
xor ecx, ecx
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
jle 0x4819fc
mov dword [esp + 0x34], ecx
mov eax, 1
xor edx, edx
call fcn.004acad0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x48]
mov dword [esp + 0x6c], ecx
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x4819e4
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x34]
mov esi, dword [edx + ecx]
mov eax, dword [esp + 0x8c]
add eax, 0x44
push esi
push eax
call fcn.0047b0a0
mov edi, eax
mov ebp, edx
mov ecx, edi
add esp, 8
or ecx, ebp
jne 0x4819c4
xor eax, eax
lea edx, [esp + 0x70]
push esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], eax
push edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 1
mov dword [esp + 0x78], 0x44ecc0
mov dword [esp + 0x7c], 0x44edb0
call fcn.0044b330
add esp, 8
cmp dword [esp + 0x84], 0
je 0x4819e4
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x4819e4
mov eax, dword [esp + 0x6c]
or dword [esp + 0x48], ebx
or dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x24]
add dword [esp + 0x34], 0x18
inc ecx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
jl 0x481918
inc dword [esp + 0x30]
cmp byte [esp + 0x17], 0
jne 0x481470
jmp 0x481a13
cmp byte [edx + 0x1d], 0
jne 0x481a27
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x48], ecx
jne 0x481a33
mov edx, dword [esp + 0x64]
cmp dword [esp + 0x4c], edx
jne 0x481a33
mov al, byte [esp + 0x44]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp byte [esp + 0x17], 0
jne 0x481a8c
mov ebx, dword [esp + 0x20]
dec ebx
test ebx, ebx
jle 0x481411
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.004acad0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x481a73
cmp esi, edx
je 0x481a82
dec ebx
test ebx, ebx
jg 0x481a4f
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x78
ret