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

Disassembly:
mov eax, dword [0xb0de30]
sub esp, 0x144
test eax, eax
push esi
push edi
mov edi, ecx
je 0x4c15be
mov eax, dword [0x84e154]
xor esi, esi
test eax, eax
mov dword [esp + 0x60], esi
jle 0x4c15be
push ebx
push ebp
mov cl, byte [0x84e15c]
test cl, cl
jne 0x4c0b8d
push 0x4c2160
push 8
push eax
mov eax, dword [0x84e150]
push eax
call fcn.0076d2e0
add esp, 0x10
mov dword [0x84e160], 0
mov byte [0x84e15c], 1
mov ecx, dword [0x84e150]
mov ebx, dword [ecx + esi*8 + 4]
mov al, byte [ebx + 0x74]
test al, al
je case.0x4c0c5d.10
lea esi, [ebx + 0x40]
push 0
mov edx, esi
push 0
mov eax, dword [edx]
mov dword [esp + 0x98], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x9c], ecx
mov ebp, dword [edx + 8]
mov dword [esp + 0xa0], ebp
mov edx, dword [edx + 0xc]
mov dword [esp + 0xa4], edx
mov edx, dword [0x821c8c]
sub eax, dword [edx + 0xb0]
mov dword [esp + 0x98], eax
mov ebp, dword [edx + 0xb4]
mov edx, dword [0x821954]
sub ecx, ebp
mov ebp, dword [0x821950]
add ecx, edx
add eax, ebp
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push eax
mov edx, edi
lea ecx, [esp + 0x150]
call fcn.0041fdf0
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x58], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 8]
test eax, eax
mov ecx, dword [ecx + 0xc]
jle case.0x4c0c5d.10
test ecx, ecx
jle case.0x4c0c5d.10
mov eax, dword [ebx + 0x30]
add eax, 0xfffffffa
cmp eax, 0x1e
ja case.0x4c0c5d.10
xor ecx, ecx
mov cl, byte [eax + 0x4c15dc]
jmp dword [ecx*4 + 0x4c15c8]
lea edx, [ebx + 0x34]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x11c]
mov ecx, dword [edx + 4]
push eax
mov dword [esp + 0x124], ecx
mov ecx, 0x81a800
mov edx, dword [edx + 8]
mov dword [esp + 0x128], edx
call fcn.00545340
mov ecx, dword [ebx + 0x24]
mov esi, eax
xor eax, eax
push 0
mov ebp, dword [esi + 0x44]
mov al, byte [esi + 0x11e]
mov dword [esi + 0x44], ecx
mov dl, byte [ebx + 0x2c]
mov dword [esp + 0x1c], eax
mov byte [esi + 0x11e], dl
movsx eax, word [esi + 0x26]
movsx ecx, word [esi + 0x24]
shl eax, 8
add eax, 0x80
cdq
and edx, 0xff
add eax, edx
sar eax, 8
shl ecx, 8
shl eax, 8
add ecx, 0x80
push eax
mov eax, ecx
lea ecx, [esp + 0x10c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
shl eax, 8
push eax
call fcn.0041b630
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
lea eax, [esp + 0x6c]
lea ecx, [esp + 0xc8]
push eax
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0xd8], edx
call fcn.00697ec0
lea edx, [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
push edi
sub ecx, 0x1e
push edx
mov dword [esp + 0x74], ecx
mov ecx, esi
call fcn.004745c0
lea eax, [esp + 0x6c]
mov ecx, esi
push edi
push eax
call fcn.00474430
mov dword [esi + 0x44], ebp
mov cl, byte [esp + 0x18]
mov byte [esi + 0x11e], cl
jmp case.0x4c0c5d.10
mov edx, dword [ebx + 0x60]
lea esi, [ebx + 0x34]
mov ecx, esi
mov eax, dword [edx]
mov edx, dword [ecx]
mov dword [esp + 0x18], eax
mov dword [esp + 0x110], edx
lea edx, [esp + 0x110]
mov eax, dword [ecx + 4]
push edx
mov dword [esp + 0x118], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x11c], ecx
mov ecx, 0x81a800
call fcn.00545340
mov ebp, eax
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov ebx, eax
mov eax, esi
mov ecx, dword [eax]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x48]
mov edx, dword [eax + 4]
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0xe8], edx
mov eax, dword [eax + 8]
lea edx, [esp + 0xe4]
push edx
mov dword [esp + 0xf0], eax
call fcn.00697ec0
mov edx, dword [edi]
mov eax, dword [0x821950]
mov ecx, dword [0x821954]
sub eax, edx
mov edx, dword [edi + 4]
sub ecx, edx
mov edx, dword [esp + 0x48]
add edx, eax
mov eax, dword [esi]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x4c]
add edx, ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], eax
call fcn.00697e60
mov esi, eax
mov eax, dword [ebp + 0x34]
neg esi
test eax, eax
jne 0x4c0e6e
push 0x3e8
push 0x3e8
push 0x3e8
push 0
push 0x10000
push 0
mov ecx, ebp
call fcn.00478cf0
movsx edx, word [ebp + 0x10c]
xor ecx, ecx
xor eax, eax
push ecx
push eax
push ecx
push ecx
push edx
mov edx, dword [esp + 0x34]
lea eax, [esi - 4]
push 2
push eax
push ecx
push 0x4e00
lea ecx, [esp + 0x6c]
push edi
push ecx
mov ecx, dword [0x821c7c]
push edx
mov edx, dword [ebp + 0x34]
push ebx
call fcn.0049ea80
mov al, byte [0x7c3965]
test al, al
je case.0x4c0c5d.10
xor ecx, ecx
xor eax, eax
push ecx
push eax
push ecx
push ecx
push 0x3e8
add esi, 0xfffffffe
push ecx
push esi
push ecx
push 0x4601
lea eax, [esp + 0x6c]
push edi
push eax
movsx eax, word [ebx + 6]
cdq
sub eax, edx
mov edx, dword [esp + 0x4c]
sar eax, 1
add eax, edx
mov edx, dword [ebp + 0x34]
push eax
push ebx
jmp 0x4c159b
mov eax, dword [ebx + 0x6c]
mov dword [esp + 0x20], 0
test eax, eax
jle case.0x4c0c5d.10
mov ebp, dword [esp + 0x20]
mov ecx, dword [ebx + 0x60]
shl ebp, 4
mov dword [esp + 0x2c], ebp
mov esi, dword [ecx + ebp]
mov edx, dword [ecx + ebp + 4]
lea eax, [ecx + ebp]
mov ecx, esi
mov eax, dword [esi]
mov dword [esp + 0x24], edx
call dword [eax + 0x9c]
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x28]
mov dl, byte [ecx + ebp + 8]
mov ecx, dword [eax + 0x15f40]
mov byte [esp + 0x2b], dl
mov edx, dword [0xa9e9e4]
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax + 0x30c]
mov eax, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x18], ecx
jne 0x4c12e5
lea ebp, [ebx + 0x34]
mov edx, ebp
mov eax, dword [edx]
add eax, 0xffffff80
mov ecx, dword [edx + 4]
mov dword [esp + 0x128], eax
add ecx, 0xffffff80
lea eax, [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [esp + 0x12c], ecx
lea ecx, [esp + 0x128]
push eax
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0x138], edx
call fcn.00697ec0
mov edx, ebp
mov eax, dword [edx]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
mov ecx, dword [edx + 4]
push eax
mov dword [esp + 0x100], ecx
mov ecx, 0x81a800
mov edx, dword [edx + 8]
mov dword [esp + 0x104], edx
call fcn.00545340
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [0x821950]
sub eax, edx
mov edx, dword [0x821954]
sub edx, ecx
mov ecx, dword [esp + 0x40]
add ecx, eax
mov al, byte [esi + 0x1385]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
add ecx, edx
test al, al
mov dword [esp + 0x44], ecx
jne case.0x4c0c5d.10
mov edx, dword [esi + 0x11d4]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
movsx eax, word [edx + 4]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0x74], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x78], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x7c], edx
mov ecx, dword [ecx + 0xc]
cmp ecx, eax
mov dword [esp + 0x80], ecx
jle 0x4c1053
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x11e4]
push 0
add eax, 0x90
mov ecx, esi
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x11e8]
add eax, 0xac
mov dword [esp + 0x38], eax
call fcn.004585c0
shl eax, 8
sub eax, 0x100
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.004585b0
shl eax, 8
sub eax, 0x100
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x13c]
push ecx
mov ecx, dword [0x821c8c]
push edx
mov dword [esp + 0xac], eax
call fcn.00697d60
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
sub edx, ecx
mov ecx, ebp
mov dword [esp + 0x30], edx
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x34]
sub eax, edx
mov edx, dword [ecx]
mov dword [esp + 0x34], eax
mov eax, dword [0x8385c4]
mov dword [esp + 0x8c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov ecx, dword [ecx + 8]
call fcn.00697e60
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
neg eax
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, 0x81a800
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
call fcn.00545340
movsx ebp, word [eax + 0x10a]
movsx edx, word [esi + 0x11fc]
mov ecx, dword [esp + 0x14]
add ebp, edx
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x4c1170
push 0x3e8
push 0x3e8
push 0x3e8
push 0
push 0x10000
push 0
call fcn.00478cf0
mov ecx, dword [esp + 0x14]
mov al, byte [esi + 0x1386]
test al, al
je 0x4c1183
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x14], eax
jmp 0x4c118b
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x80]
test eax, eax
jle 0x4c12aa
mov al, byte [esp + 0x2b]
test al, al
je 0x4c120c
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
push ecx
push eax
push ecx
push ecx
add edx, 0xfffffffe
push ebp
push ecx
push edx
mov edx, dword [esp + 0x40]
push ecx
lea eax, [esp + 0x94]
push 0x4e00
lea ecx, [esp + 0x74]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [0x821c7c]
push edx
mov edx, dword [esp + 0x44]
push eax
call fcn.0049ea80
xor eax, eax
xor ecx, ecx
push ecx
push eax
push ecx
push ecx
push 0x3e8
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x8c]
lea eax, [ecx - 2]
push eax
push 0
push 0x4e01
lea eax, [esp + 0x74]
push edx
push eax
jmp 0x4c1286
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x18]
push 0
push eax
push ebp
lea eax, [edx + ecx - 2]
push 2
push eax
mov eax, dword [esp + 0x40]
push 0
lea ecx, [esp + 0x94]
push 0x4e00
lea edx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
mov ecx, dword [0x821c7c]
call fcn.0049ea80
xor ecx, ecx
xor eax, eax
mov edx, dword [esp + 0x10]
push ecx
push eax
push ecx
push ecx
push 0x3e8
add edx, 0xfffffffe
push ecx
push edx
push ecx
lea eax, [esp + 0x94]
push 0x4e01
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, dword [esp + 0x48]
movsx eax, word [ecx + 6]
cdq
sub eax, edx
mov edx, dword [esp + 0x50]
sar eax, 1
add eax, edx
mov edx, dword [esp + 0x40]
push eax
push ecx
mov ecx, dword [0x821c7c]
call fcn.0049ea80
mov esi, dword [esi + 0x11cc]
test esi, esi
je 0x4c1485
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
push ecx
push eax
push ecx
push ecx
push ebp
add edx, 0xfffffffd
push ecx
push edx
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x44]
push 0x4e00
lea eax, [esp + 0x64]
push edi
push eax
push ecx
push esi
jmp 0x4c147a
test esi, esi
je 0x4c1485
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
cmp eax, 5
jne 0x4c1485
mov eax, dword [esi + 0x294]
mov ecx, dword [0xa2874c]
cmp eax, ecx
jg 0x4c1485
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4c1485
lea ebp, [ebx + 0x34]
mov edx, ebp
mov eax, dword [edx]
add eax, 0xffffff80
mov ecx, dword [edx + 4]
mov dword [esp + 0xbc], eax
add ecx, 0xffffff80
lea eax, [esp + 0x38]
mov edx, dword [edx + 8]
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0xbc]
push eax
push ecx
mov ecx, dword [0x821c8c]
mov dword [esp + 0xcc], edx
call fcn.00697ec0
mov edx, dword [edi]
mov eax, dword [0x821950]
mov ecx, dword [0x821954]
mov dword [esp + 0x134], edx
mov edx, dword [edi + 4]
sub eax, dword [esp + 0x134]
sub ecx, edx
mov edx, dword [esp + 0x38]
add edx, eax
mov eax, 0x3e8
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
add edx, ecx
mov cl, byte [esi + 0x319]
test cl, cl
mov dword [esp + 0x3c], edx
jne 0x4c13d8
mov eax, ebp
mov ecx, dword [eax]
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0xd4]
mov edx, dword [eax + 4]
push ecx
mov ecx, 0x81a800
mov dword [esp + 0xdc], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xe0], eax
call fcn.00545340
movsx eax, word [eax + 0x10a]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c13f0
mov dl, byte [esi + 0x318]
test dl, dl
je 0x4c13f0
mov dword [esp + 0x10], ecx
jmp 0x4c13fa
mov edx, dword [0x81a6e0]
mov dword [esp + 0x10], edx
mov ecx, dword [ebx + 0x60]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + edx + 0xc]
mov dword [esp + 0x18], ecx
mov cl, byte [esi + 0x324]
test cl, cl
je 0x4c1430
mov ecx, dword [ebp]
xor edx, edx
xor esi, esi
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp + 8]
push esi
push edx
push esi
push esi
push eax
mov dword [esp + 0x70], ecx
push esi
jmp 0x4c144c
mov ecx, dword [ebp]
xor edx, edx
xor esi, esi
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp + 8]
push esi
push edx
push esi
push esi
push eax
mov dword [esp + 0x70], ecx
push 2
mov ecx, ebp
call fcn.00697e60
mov edx, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
sub eax, edx
mov edx, dword [esp + 0x34]
sub eax, 2
push eax
push 0
push 0x2e00
lea eax, [esp + 0x5c]
push edi
push eax
push ecx
push edx
mov edx, dword [esp + 0x44]
mov ecx, dword [0x821c7c]
call fcn.0049ea80
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x6c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4c0efb
jmp case.0x4c0c5d.10
mov eax, dword [0x821c8c]
mov ebp, dword [edi + 4]
mov edx, dword [edi]
mov ecx, dword [eax + 0xb0]
mov eax, dword [eax + 0xb4]
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x88], eax
mov eax, dword [esi]
mov esi, dword [esp + 0x84]
sub eax, esi
mov esi, dword [esp + 0x88]
sub ecx, esi
mov esi, dword [0x821950]
lea eax, [eax + esi + 0x1e]
mov esi, dword [0x821954]
add ecx, esi
sub eax, edx
mov edx, dword [0xa287ec]
sub ecx, ebp
mov dword [esp + 0xac], ecx
mov ecx, dword [ebx + 0x54]
mov dword [esp + 0xa8], eax
mov ecx, dword [edx + ecx*4]
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov ebp, eax
test ebp, ebp
je case.0x4c0c5d.10
lea esi, [ebx + 0x34]
mov ecx, esi
mov edx, dword [ecx]
mov dword [esp + 0xec], edx
lea edx, [esp + 0xec]
mov eax, dword [ecx + 4]
push edx
mov dword [esp + 0xf4], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0xf8], ecx
mov ecx, 0x81a800
call fcn.00545340
mov ecx, dword [esi]
xor edx, edx
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 4]
mov esi, dword [esi + 8]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov dword [esp + 0x2c], eax
movsx eax, word [eax + 0x10c]
push ecx
push edx
push ecx
push ecx
push eax
push 2
mov ecx, esi
call fcn.00697e60
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xc0]
neg eax
push eax
mov eax, dword [ebx + 0x58]
push 0
push 0xe00
push edi
push edx
mov edx, dword [ecx + 0x34]
push eax
push ebp
mov ecx, dword [0x821c7c]
call fcn.0049ea80
mov esi, dword [esp + 0x68]
mov eax, dword [0x84e154]
inc esi
cmp esi, eax
mov dword [esp + 0x68], esi
jl 0x4c0b5c
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x144
ret