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

Disassembly:
sub esp, 0x60
push ebx
mov ebx, dword [0xc2799c]
lea eax, [esp + 0x14]
push ebp
push esi
push edi
push eax
lea eax, [esp + 0x1c]
sar ebx, 9
push eax
mov ecx, 0xc27898
call fcn.004c3d20
mov ecx, dword [esp + 0x18]
lea edx, [ebx*2 + 1]
mov eax, dword [esp + 0x20]
add bl, bl
sar ecx, 8
mov ebp, 0x7d0
sub cl, bl
sar eax, 8
sub al, bl
mov dword [esp + 0x64], ecx
mov byte [esp + 0x14], cl
xor ebx, ebx
mov ecx, 0x5d07cc
mov dword [esp + 0x38], edx
mov byte [esp + 0x15], al
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], ecx
cmp byte [ecx + 0x41f], 0
je 0x48d51a
movsx eax, byte [0x5cf497]
mov edi, dword [ecx]
mov dword [esp + 0x30], edi
cmp ebx, eax
je 0x48d2e6
test edi, edi
je 0x48d51a
nop dword [eax]
cmp byte [edi + 0x32], 4
jne 0x48d2da
lea eax, [ecx - 0x8c2]
push edi
push eax
call fcn.0048c370
mov ecx, dword [esp + 0x24]
add esp, 8
mov edi, dword [edi + 8]
test edi, edi
jne 0x48d2c0
jmp 0x48d51a
test edi, edi
je 0x48d51a
nop
cmp byte [edi + 0x32], 4
jne 0x48d503
mov al, byte [edi + 0x36]
cmp al, byte [0x5cf497]
je 0x48d398
movzx esi, byte [0x5942bc]
xor edx, edx
test esi, esi
je 0x48d503
lea ecx, [edi + 0x96]
movzx eax, word [ecx]
test ax, ax
je 0x48d34a
cmp ax, bp
jae 0x48d34a
mov eax, dword [eax*4 + 0x5c4ea4]
test eax, eax
je 0x48d34a
test byte [eax + 0x11], 1
jne 0x48d34a
cmp byte [eax + 0x31], 0
je 0x48d34a
cmp byte [eax + 0x32], 5
jne 0x48d357
inc edx
add ecx, 2
cmp edx, esi
jl 0x48d320
jmp 0x48d503
test byte [0x5c9591], 4
je 0x48d398
movzx eax, byte [edi + 0x4e]
mov byte [esp + 0x10], al
movzx eax, byte [edi + 0x50]
mov byte [esp + 0x11], al
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
test byte [eax + 0x5d7692], 8
je 0x48d503
push edi
call fcn.004404c0
mov esi, dword [edi + 0x4d]
add esp, 4
test eax, eax
mov dword [esp + 0x68], esi
mov ecx, 2
cmove eax, ecx
mov ecx, 0xc27898
shl eax, 9
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x64]
push eax
mov eax, esi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
call fcn.004c4ea0
movsx eax, word [edi + 0x4f]
mov ecx, 0xc27898
push eax
movsx eax, word [edi + 0x4d]
push eax
call fcn.004c3fe0
mov edi, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x2c]
push eax
push ebx
push 0x20
push edi
call fcn.004c0350
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x68]
add eax, dword [esp + 0x7e]
add esp, 0x14
movsx ebp, ax
mov eax, dword [esp + 0x28]
add eax, esi
push ecx
lea ecx, [esp + 0x5c]
cwde
push ecx
push ebp
push eax
mov ecx, 0xc27898
mov dword [esp + 0x4c], eax
call fcn.004c4ea0
lea eax, [esp + 0x24]
inc ebx
push eax
lea eax, [esp + 0x2c]
push eax
mov eax, ebx
and eax, 0x8000001f
jns 0x48d451
dec eax
or eax, 0xffffffe0
inc eax
push eax
push 0x20
push edi
call fcn.004c0350
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x60]
add eax, dword [esp + 0x7e]
add esp, 0x14
movsx ecx, ax
mov eax, dword [esp + 0x28]
add eax, esi
mov dword [esp + 0x44], ecx
push edx
lea edx, [esp + 0x54]
cwde
push edx
push ecx
push eax
mov ecx, 0xc27898
mov dword [esp + 0x58], eax
call fcn.004c4ea0
cmp dword [esp + 0x40], 0
jne 0x48d4bd
push ebp
push dword [esp + 0x40]
mov ecx, 0xc27898
call fcn.004c3fe0
test eax, eax
jne 0x48d4bd
push dword [esp + 0x44]
mov ecx, 0xc27898
push dword [esp + 0x4c]
call fcn.004c3fe0
test eax, eax
je 0x48d4f1
mov eax, dword [esp + 0x1c]
movsx eax, byte [eax + 0x421]
movzx eax, byte [eax*4 + 0x58b6ab]
push eax
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x70]
push dword [esp + 0x78]
call fcn.0048c060
add esp, 0x1c
cmp ebx, 0x20
jl 0x48d3f6
mov edi, dword [esp + 0x30]
mov ebp, 0x7d0
mov edi, dword [edi + 8]
mov dword [esp + 0x30], edi
test edi, edi
jne 0x48d2f0
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
inc ebx
add ecx, 0xd26
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], ecx
cmp ebx, 9
jl 0x48d293
mov ax, word [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov bl, al
mov word [esp + 0x14], ax
mov bh, byte [esp + 0x15]
mov dword [esp + 0x20], ecx
nop word [eax + eax]
movzx edi, bh
mov dword [esp + 0x18], ecx
shl edi, 8
nop word [eax + eax]
movzx eax, word [esp + 0x14]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
movzx eax, bl
shr ecx, 1
imul esi, ecx, 0x1a
mov ecx, 0xc27898
push edi
shl eax, 8
push eax
add esi, 0x5d7692
call fcn.004c3fe0
test eax, eax
je 0x48d5b4
push dword [esp + 0x14]
push esi
call fcn.0048d0f0
add esp, 8
cmp word [esi + 8], 0
je 0x48d5b4
push esi
call fcn.0048b1e0
add esp, 4
mov eax, dword [esp + 0x18]
add bl, 2
dec eax
mov byte [esp + 0x14], bl
mov dword [esp + 0x18], eax
test eax, eax
jne 0x48d560
mov eax, dword [esp + 0x20]
add bh, 2
mov bl, byte [esp + 0x64]
dec eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov byte [esp + 0x15], bh
mov byte [esp + 0x14], bl
test eax, eax
jne 0x48d550
mov edi, dword [0x5c4e34]
test edi, edi
je 0x48d997
mov dword [esp + 0x38], 1
test dword [edi + 0x15], 0x40000000
je 0x48d618
test dword [edi + 0x11], 0x20000
je case.0x48d6c1.3
test byte [0x5c9591], 4
je 0x48d659
movzx eax, byte [edi + 0x4e]
mov byte [esp + 0x14], al
movzx eax, byte [edi + 0x50]
mov byte [esp + 0x15], al
movzx eax, word [esp + 0x14]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
test byte [eax + 0x5d7692], 8
je case.0x48d6c1.3
movsx esi, word [edi + 0x4f]
lea eax, [esp + 0x2c]
movsx ebx, word [edi + 0x4d]
mov ecx, 0xc27898
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push ebx
call fcn.004c4ea0
movzx eax, byte [edi + 0x31]
sub eax, 2
je 0x48d71d
sub eax, 2
je 0x48d6e6
sub eax, 1
jne case.0x48d6c1.3
cmp byte [edi + 0x32], 9
jne case.0x48d6c1.3
push esi
push ebx
mov ecx, 0xc27898
call fcn.004c3fe0
test eax, eax
je case.0x48d6c1.3
movzx eax, byte [edi + 0xa7]
dec eax
cmp eax, 4
ja case.0x48d6c1.3
jmp dword [eax*4 + 0x48d9a0]
mov ecx, 0x7b
jmp 0x48d863
mov ecx, 0x7c
jmp 0x48d863
mov ecx, 0x7a
jmp 0x48d863
push esi
push ebx
mov ecx, 0xc27898
call fcn.004c3fe0
test eax, eax
je case.0x48d6c1.3
movzx eax, byte [edi + 0x32]
imul eax, eax, 0x17
movzx ecx, word [eax + 0x594855]
movsx eax, byte [edi + 0x36]
and ecx, 1
lea ecx, [ecx*4 + 0x7d]
add ecx, eax
jmp 0x48d863
test byte [edi + 0x45], 1
je case.0x48d6c1.3
cmp byte [edi + 0x33], 2
jne case.0x48d6c1.3
mov al, byte [edi + 0x36]
cmp al, byte [0x5cf497]
je 0x48d740
xor ecx, ecx
jmp 0x48d747
movsx ecx, byte [edi + 0xb6]
movzx eax, byte [edi + 0x32]
dec eax
cmp eax, 0x12
ja case.0x48d755.9
jmp dword [eax*4 + 0x48d9b4]
mov ecx, 0x79
jmp 0x48d863
mov ecx, 0x95
jmp 0x48d863
add ecx, 0x86
jmp 0x48d863
add ecx, 0x8a
jmp 0x48d863
add ecx, 0x8f
jmp 0x48d863
mov ecx, 0xa6
jmp 0x48d863
mov ecx, 0xa7
jmp 0x48d863
mov ecx, 0xa4
jmp 0x48d863
mov ecx, 0xa5
jmp 0x48d863
cmp byte [edi + 0xb6], 0
mov ecx, 0x78
je 0x48d863
movzx esi, byte [0x5942bc]
test esi, esi
je 0x48d863
lea edx, [edi + 0x96]
movzx eax, word [edx]
test ax, ax
je case.default.0x48d810
cmp ax, bp
jae case.default.0x48d810
mov eax, dword [eax*4 + 0x5c4ea4]
test eax, eax
je case.default.0x48d810
test byte [eax + 0x11], 1
jne case.default.0x48d810
cmp byte [eax + 0x31], 0
je case.default.0x48d810
movzx eax, byte [eax + 0x32]
add eax, 0xfffffffe
cmp eax, 5
ja case.default.0x48d810
jmp dword [eax*4 + 0x48da00]
mov ecx, 0xa3
jmp case.default.0x48d810
mov ecx, 0x85
jmp case.default.0x48d810
mov ecx, 0x74
jmp case.default.0x48d810
mov ecx, 0x75
jmp case.default.0x48d810
mov ecx, 0x77
jmp case.default.0x48d810
mov ecx, 0x76
add edx, 2
sub esi, 1
jne 0x48d7e0
jmp 0x48d863
mov ecx, 0xa8
jmp 0x48d863
mov ecx, 0xa9
jmp 0x48d863
mov ecx, 0x43b
jmp 0x48d863
mov ecx, 0x434
mov eax, dword [0x5c3ab8]
movzx ebp, word [eax + ecx*8 + 6]
lea eax, [eax + ecx*8]
movzx ecx, word [eax + 4]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, ecx
shr eax, 1
sub ebx, eax
mov dword [esp + 0x5c], eax
mov eax, ebp
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x2c]
shr eax, 1
sub ebp, eax
mov dword [esp + 0x58], eax
movsx eax, word [0x5cf476]
sar eax, 1
sub eax, ebx
mov dword [esp + 0x60], ecx
movsx ecx, word [0x5cf478]
cdq
mov esi, eax
mov dword [esp + 0x18], ebx
xor esi, edx
mov dword [esp + 0x2c], ebp
sub esi, edx
mov eax, ecx
sar eax, 1
sub eax, ebp
imul esi, esi
cdq
xor eax, edx
shl ecx, 2
sub eax, edx
imul eax, eax
add eax, esi
mov dword [esp + 0x64], eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x64]
imul eax, eax
mov esi, eax
sar esi, 1
cmp edx, esi
jle 0x48d979
cmp edx, eax
mov ecx, eax
cmovle ecx, edx
sub eax, ecx
shl eax, 0xf
cdq
idiv esi
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x28]
add eax, 0x8000
mov ecx, eax
imul eax, edx
imul ecx, esi
sar eax, 0x10
sar ecx, 0x10
cmp ecx, 1
cmovl ecx, dword [esp + 0x38]
cmp eax, 1
cmovl eax, dword [esp + 0x38]
cmp ecx, esi
cmovle esi, ecx
mov ecx, dword [esp + 0x5c]
cmp eax, edx
cmovle edx, eax
mov eax, esi
sar eax, 1
sub ecx, eax
mov dword [esp + 0x28], edx
mov eax, edx
add ecx, ebx
mov edx, dword [esp + 0x58]
sar eax, 1
sub edx, eax
mov dword [esp + 0x18], ecx
add edx, ebp
mov ebp, dword [esp + 0x28]
push ebp
push esi
push dword [esp + 0x3c]
mov dword [esp + 0x38], edx
push edx
push ecx
call fcn.0045fb00
add esp, 0x14
jmp case.0x48d6c1.3
push dword [esp + 0x34]
push ebp
push ebx
call fcn.0045fca0
add esp, 0xc
mov edi, dword [edi + 4]
mov ebp, 0x7d0
test edi, edi
jne 0x48d602
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret