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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov edi, ecx
push 0
push 1
lea ecx, [esp + 0x38]
mov dword [esp + 0x78], edi
call fcn.004f5d30
mov esi, dword [esp + 0x78]
test esi, esi
je 0x4c360c
cmp byte [esi], 0
je 0x4c360c
mov dword [esp + 0x10], 0x6c30d4
mov eax, 0x6c30d4
mov ecx, 1
lock xadd dword [eax], ecx
mov edi, dword [esp + 0x7c]
lea esp, [esp]
mov al, byte [esi]
xor ebp, ebp
test al, al
je 0x4c2ec5
cmp al, 0x25
je 0x4c2ec5
mov al, byte [esi + ebp + 1]
inc ebp
test al, al
jne 0x4c2eb8
mov ecx, dword [0x6cb2f4]
test ecx, ecx
je 0x4c2f01
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push 0
push ebp
push esi
lea eax, [esp + 0x40]
push eax
call edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x14]
call fcn.004bf1f0
mov ecx, dword [esp + 0x34]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4c2f33
mov eax, dword [esp + 0x34]
push eax
jmp 0x4c2f2b
push ebp
push esi
call fcn.004be1d0
add esp, 8
lea ecx, [esp + 0x3c]
mov ebx, eax
push ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x40], ebx
call fcn.004bf1f0
mov edx, ebx
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4c2f33
push ebx
call fcn.004c45d0
add esp, 4
add esi, ebp
cmp byte [esi], 0
je 0x4c35c1
mov al, byte [esi + 1]
mov ebp, esi
inc esi
test al, al
je 0x4c3579
cmp al, 0x25
jne 0x4c2f6a
push ecx
mov eax, esp
mov ecx, 0x25
mov word [eax], cx
lea ecx, [esp + 0x14]
call fcn.004c0ab0
inc esi
jmp 0x4c2eb0
xor ecx, ecx
mov dword [esp + 0x14], ecx
movsx eax, byte [esi]
add eax, 0xffffffe0
cmp eax, 0x10
ja case.0x4c2f82.33
movzx edx, byte [eax + 0x4c3680]
jmp dword [edx*4 + 0x4c3664]
or ecx, 1
inc esi
jmp 0x4c2f70
or ecx, 2
inc esi
jmp 0x4c2f70
or ecx, 4
inc esi
jmp 0x4c2f70
or ecx, 8
inc esi
jmp 0x4c2f70
or ecx, 0x10
inc esi
jmp 0x4c2f70
or ecx, 0x20
inc esi
jmp 0x4c2f70
mov al, byte [esi]
mov dword [esp + 0x14], ecx
test al, al
je 0x4c358f
mov cl, al
or ebx, 0xffffffff
sub cl, 0x30
mov dword [esp + 0x1c], ebx
cmp cl, 9
ja 0x4c305e
mov dword [esp + 0x20], 0x6c30d4
mov edx, 0x6c30d4
mov eax, 1
lock xadd dword [edx], eax
mov al, byte [esi]
test al, al
je 0x4c3014
mov cl, al
sub cl, 0x30
cmp cl, 9
ja 0x4c3014
push ecx
movzx dx, al
mov ecx, esp
mov word [ecx], dx
lea ecx, [esp + 0x24]
mov byte [esp + 0x7c], al
inc esi
call fcn.004c0ab0
mov al, byte [esi]
test al, al
jne 0x4c2fec
push 0xa
push 0
lea ecx, [esp + 0x28]
call fcn.004be2e0
cmp edx, ebx
jl 0x4c303b
jg 0x4c302e
cmp eax, 0x80000000
jb 0x4c303b
test edx, edx
jl 0x4c3041
jg 0x4c303b
cmp eax, 0x7fffffff
jbe 0x4c3041
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
lock xadd dword [eax], ebx
jne 0x4c3074
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004c45d0
add esp, 4
jmp 0x4c3074
cmp al, 0x2a
jne 0x4c3074
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x1c], eax
test eax, eax
jge 0x4c3073
mov dword [esp + 0x1c], ebx
inc esi
mov al, byte [esi]
test al, al
je 0x4c3599
or ebx, 0xffffffff
mov dword [esp + 0x28], ebx
cmp al, 0x2e
jne 0x4c3140
mov al, byte [esi + 1]
inc esi
mov dl, al
sub dl, 0x30
cmp dl, 9
ja 0x4c3127
mov dword [esp + 0x38], 0x6c30d4
mov eax, 0x6c30d4
mov ecx, 1
lock xadd dword [eax], ecx
mov al, byte [esi]
test al, al
je 0x4c30e8
jmp 0x4c30c0
mov dl, al
sub dl, 0x30
cmp dl, 9
ja 0x4c30e8
mov byte [esp + 0x7c], al
push ecx
movzx ax, al
mov ecx, esp
mov word [ecx], ax
lea ecx, [esp + 0x3c]
inc esi
call fcn.004c0ab0
mov al, byte [esi]
test al, al
jne 0x4c30c0
push 0xa
push 0
lea ecx, [esp + 0x40]
call fcn.004be2e0
cmp edx, 0xffffffff
jl 0x4c3110
jg 0x4c3103
cmp eax, 0x80000000
jb 0x4c3110
test edx, edx
jl 0x4c3116
jg 0x4c3110
cmp eax, 0x7fffffff
jbe 0x4c3116
xor eax, eax
mov dword [esp + 0x2c], eax
mov ebx, eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], ebx
call fcn.004010b0
jmp 0x4c3140
cmp al, 0x2a
jne 0x4c3140
mov ebx, dword [edi]
add edi, 4
mov dword [esp + 0x28], ebx
test ebx, ebx
jge 0x4c313f
or ebx, 0xffffffff
mov dword [esp + 0x28], ebx
inc esi
mov cl, byte [esi]
test cl, cl
je 0x4c35a4
movsx ecx, cl
add ecx, 0xffffffb4
xor eax, eax
cmp ecx, 0x2e
ja case.0x4c315e.77
movzx ecx, byte [ecx + 0x4c36b0]
jmp dword [ecx*4 + 0x4c3694]
inc esi
cmp byte [esi], 0x68
jne 0x4c3172
mov eax, 1
jmp 0x4c31a7
mov eax, 2
jmp case.0x4c315e.77
inc esi
cmp byte [esi], 0x6c
jne 0x4c3186
mov eax, 4
jmp 0x4c31a7
mov eax, 3
jmp case.0x4c315e.77
mov eax, 5
jmp 0x4c31a7
mov eax, 6
jmp 0x4c31a7
mov eax, 7
jmp 0x4c31a7
mov eax, 8
inc esi
cmp byte [esi], 0
je 0x4c35af
mov dword [esp + 0x18], 0x6c30d4
mov edx, 0x6c30d4
mov ecx, 1
lock xadd dword [edx], ecx
mov dl, byte [esi]
movsx ecx, dl
add ecx, 0xffffffbf
cmp ecx, 0x37
ja case.0x4c31df.66
movzx ecx, byte [ecx + 0x4c3700]
jmp dword [ecx*4 + 0x4c36e0]
cmp eax, 8
ja case.0x4c31eb.5
jmp dword [eax*4 + 0x4c3738]
mov eax, dword [edi]
add edi, 4
cdq
jmp 0x4c320f
mov eax, dword [edi]
mov edx, dword [edi + 4]
add edi, 8
jmp 0x4c320f
mov eax, dword [edi]
add edi, 4
jmp 0x4c320d
xor eax, eax
xor edx, edx
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
push ecx
push 0xa
push ebx
push edx
push eax
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x4c]
call fcn.004f3900
mov ecx, eax
call fcn.004f5150
push eax
lea ecx, [esp + 0x1c]
call fcn.004bb760
lea ecx, [esp + 0x40]
call fcn.004010b0
jmp 0x4c34c5
cmp eax, 7
ja case.0x4c3250.5
jmp dword [eax*4 + 0x4c375c]
mov ebp, dword [edi]
add edi, 4
jmp 0x4c326a
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
add edi, 8
jmp 0x4c326c
xor ebp, ebp
xor ebx, ebx
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x4c3279
or dword [esp + 0x14], 0x40
push edx
mov dword [esp + 0x28], 0xa
call fcn.004bdc80
add esp, 4
cmp al, 0x6f
je 0x4c32aa
cmp al, 0x75
je 0x4c32a0
cmp al, 0x78
jne 0x4c32b2
mov dword [esp + 0x24], 0x10
jmp 0x4c32b2
mov dword [esp + 0x24], 0xa
jmp 0x4c32b2
mov dword [esp + 0x24], 8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
push ebx
push ebp
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x4c]
call fcn.004f3900
mov ecx, eax
call fcn.004f51c0
push eax
lea ecx, [esp + 0x1c]
call fcn.004bb760
lea ecx, [esp + 0x44]
call fcn.004010b0
jmp 0x4c34c5
fld qword [edi]
add edi, 8
mov al, dl
fstp qword [esp + 0x28]
sub al, 0x41
cmp al, 0x19
ja 0x4c330b
or dword [esp + 0x14], 0x40
push edx
mov ebp, 1
call fcn.004bdc80
movsx eax, al
add eax, 0xffffff9f
add esp, 4
cmp eax, 6
ja case.0x4c3324.97
jmp dword [eax*4 + 0x4c377c]
xor ebp, ebp
jmp case.0x4c3324.97
mov ebp, 2
mov ecx, dword [esp + 0x14]
fld qword [esp + 0x28]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push ebp
push ebx
sub esp, 8
lea eax, [esp + 0x60]
fstp qword [esp]
push eax
lea ecx, [esp + 0x4c]
call fcn.004f3900
mov ecx, eax
call fcn.004f50c0
push eax
lea ecx, [esp + 0x1c]
call fcn.004bb760
lea ecx, [esp + 0x48]
call fcn.004010b0
jmp 0x4c34c5
add edi, 4
cmp eax, 3
jne 0x4c339b
mov cx, word [edi - 4]
mov word [esp + 0x4c], cx
mov edx, dword [esp + 0x4c]
push edx
lea ecx, [esp + 0x1c]
call fcn.004bf190
jmp 0x4c34c5
mov al, byte [edi - 4]
push ecx
movzx ax, al
mov ecx, esp
mov word [ecx], ax
lea ecx, [esp + 0x1c]
call fcn.004bf190
jmp 0x4c34c5
mov ecx, dword [edi]
add edi, 4
cmp eax, 3
jne 0x4c33ea
cmp word [ecx], 0
mov eax, ecx
je 0x4c33d9
jmp 0x4c33d0
add eax, 2
cmp word [eax], 0
jne 0x4c33d0
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.004c2a60
jmp 0x4c340d
push 0xffffffffffffffff
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.004bf980
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
call fcn.004bb760
lea ecx, [esp + 0x50]
call fcn.004010b0
cmp ebx, 0xffffffff
je 0x4c34c5
push ebx
lea ecx, [esp + 0x1c]
call fcn.004c1d20
jmp 0x4c34c5
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [edi]
or ebp, 1
push ebp
push edx
push 0x10
push ebx
xor ecx, ecx
push ecx
add edi, 4
push eax
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x30], ebp
call fcn.004f3900
mov ecx, eax
call fcn.004f51c0
push eax
lea ecx, [esp + 0x1c]
call fcn.004bb760
lea ecx, [esp + 0x54]
call fcn.004010b0
jmp 0x4c34c5
dec eax
cmp eax, 3
ja case.0x4c3472.3
jmp dword [eax*4 + 0x4c3798]
mov ecx, dword [esp + 0x10]
mov eax, dword [edi]
mov ecx, dword [ecx + 8]
add edi, 4
mov byte [eax], cl
jmp 0x4c34c5
mov edx, dword [esp + 0x10]
mov eax, dword [edi]
mov ecx, dword [edx + 8]
add edi, 4
mov word [eax], cx
jmp 0x4c34c5
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 8]
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x28]
mov dword [eax + 4], 0
jmp 0x4c34c3
mov ecx, dword [esp + 0x10]
mov eax, dword [edi]
mov edx, dword [ecx + 8]
add edi, 4
mov dword [eax], edx
mov edx, dword [esp + 0x1c]
push 0
push ecx
mov eax, esp
mov ecx, 0x20
inc esi
test byte [esp + 0x1c], 4
mov word [eax], cx
push edx
lea ecx, [esp + 0x24]
je 0x4c350e
lea eax, [esp + 0x64]
push eax
call fcn.004c1db0
push eax
lea ecx, [esp + 0x14]
call fcn.004bf1f0
lea ecx, [esp + 0x58]
call fcn.004010b0
lea ecx, [esp + 0x18]
call fcn.004010b0
jmp 0x4c2eb0
lea eax, [esp + 0x68]
push eax
call fcn.004c1ed0
push eax
lea ecx, [esp + 0x14]
call fcn.004bf1f0
lea ecx, [esp + 0x5c]
call fcn.004010b0
lea ecx, [esp + 0x18]
call fcn.004010b0
jmp 0x4c2eb0
cmp ebp, esi
je 0x4c3559
lea ecx, [ecx]
push ecx
movzx cx, byte [ebp]
mov eax, esp
mov word [eax], cx
lea ecx, [esp + 0x14]
call fcn.004c0ab0
inc ebp
cmp ebp, esi
jne 0x4c3540
mov edx, 0x6c30d4
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4c2eb0
push edx
call fcn.004c45d0
add esp, 4
jmp 0x4c2eb0
push ecx
mov eax, esp
mov ecx, 0x25
mov word [eax], cx
lea ecx, [esp + 0x14]
call fcn.004c0ab0
jmp 0x4c35c1
mov dword [esp + 0x60], ebp
lea edx, [esp + 0x60]
jmp 0x4c35b7
lea eax, [esp + 0x64]
mov dword [esp + 0x64], ebp
push eax
jmp 0x4c35b8
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], ebp
push ecx
jmp 0x4c35b8
mov dword [esp + 0x6c], ebp
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x14]
call fcn.004bf2b0
mov esi, dword [esp + 0x10]
mov eax, esi
mov ecx, 1
lock xadd dword [eax], ecx
mov edi, dword [esp + 0x70]
mov edx, dword [edi]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4c35ea
mov ecx, dword [edi]
push ecx
call fcn.004c45d0
add esp, 4
mov dword [edi], esi
mov edx, esi
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4c3658
push esi
call fcn.004c45d0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8
mov ecx, 0x6c30e8
mov edx, 1
lock xadd dword [ecx], edx
mov eax, ecx
mov ecx, 1
lock xadd dword [eax], ecx
mov edx, dword [edi]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4c363b
mov ecx, dword [edi]
push ecx
call fcn.004c45d0
add esp, 4
mov dword [edi], 0x6c30e8
mov edx, 0x6c30e8
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4c3658
push edx
call fcn.004c45d0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8