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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf4
push ebx
mov ebx, dword [ebp + 0x14]
mov eax, ebx
mov ecx, ebx
shr eax, 1
and eax, 1
mov edx, ebx
mov dword [esp + 0x20], eax
mov eax, ebx
shr eax, 2
and eax, 1
and ecx, 0x40080
mov dword [esp + 0x50], eax
mov eax, ebx
shr eax, 0xc
and eax, 1
and edx, 1
mov dword [esp + 0x4c], eax
mov eax, ebx
shr eax, 3
and eax, 1
push esi
mov dword [esp + 0x44], eax
mov eax, ebx
shr eax, 0xe
and eax, 1
push edi
mov dword [esp + 0x4c], eax
mov eax, ebx
shr eax, 6
and eax, 1
mov dword [esp + 0x9c], edx
mov dword [esp + 0x2c], eax
mov eax, ebx
neg ecx
sbb ecx, ecx
xor esi, esi
shr eax, 8
and eax, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], eax
mov eax, ebx
shr eax, 9
and eax, 1
mov dword [esp + 0x40], esi
mov dword [esp + 0xc0], eax
mov eax, ebx
shr eax, 0xf
and eax, 1
mov dword [esp + 0x50], eax
mov eax, ebx
shr eax, 0xb
and eax, 1
mov dword [esp + 0xc4], eax
mov eax, dword [0x583520]
neg ecx
cmp edx, esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], eax
jne 0x4a47f6
test ebx, 0x80000000
jne 0x4a47f6
mov eax, 1
jmp 0x4a47f8
xor eax, eax
cmp eax, esi
mov dword [esp + 0x7c], esi
je 0x4a4808
mov dword [esp + 0x40], 2
cmp edx, esi
jne 0x4a4816
mov eax, dword [esp + 0x40]
or al, 4
mov dword [esp + 0x40], eax
test ebx, 0x2000000
jne 0x4a4890
cmp ecx, esi
jne 0x4a486f
test ebx, 0x20400000
jne 0x4a4843
mov ecx, dword [ebp + 8]
push esi
push esi
push ecx
call fcn.004a63d0
mov edx, dword [ebp + 0xc]
push esi
push esi
push edx
call fcn.004a63d0
add esp, 0x18
test ebx, 0x200000
je 0x4a4855
push esi
push esi
call fcn.00504300
add esp, 8
test ebx, 0x10000000
je 0x4a4888
push esi
push esi
call fcn.004bce20
add esp, 8
mov dword [0x57c610], esi
jmp 0x4a48cd
mov eax, dword [ebp + 8]
push esi
push esi
push eax
call fcn.004a56e0
mov ecx, dword [ebp + 0xc]
push esi
push esi
push ecx
call fcn.004a56e0
add esp, 0x18
mov dword [0x57c610], esi
jmp 0x4a48cd
mov edx, dword [ebp + 8]
push 1
push edx
call fcn.00488ce0
mov esi, eax
mov eax, dword [ebp + 0xc]
push 1
push eax
call fcn.00488ce0
push 1
add esi, eax
call fcn.004bad60
push 1
add esi, eax
call fcn.004fed60
add esp, 0x18
add esi, eax
mov dword [esp + 0x10], esi
jmp 0x4a48cd
call fcn.0054719e
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x38]
push ecx
lea eax, [esp + 0x34]
push edx
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004a4610
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4a4901
cmp esi, 0x1e
je 0x4a490a
cmp esi, 0x15
jne 0x4a561a
cmp esi, 0x1e
jne 0x4a4a05
mov esi, dword [esp + 0x7c]
test esi, esi
jne 0x4a496a
mov eax, dword [ebp + 8]
push ebx
push 1
push eax
call fcn.004a5720
add esp, 0xc
test eax, eax
jne 0x4a4956
mov ecx, dword [ebp + 0xc]
push ebx
push 1
push ecx
call fcn.004a5720
add esp, 0xc
test eax, eax
jne 0x4a4956
push ebx
push 1
call fcn.004bcea0
add esp, 8
test eax, eax
jne 0x4a4956
push ebx
push 1
call fcn.00504380
add esp, 8
test eax, eax
je 0x4a496a
push 1
push 0x58178c
call fcn.00547180
add esp, 8
jmp 0x4a49f1
push ebx
push esi
call fcn.004815e0
mov edx, dword [ebp + 8]
add esp, 4
neg eax
sbb eax, eax
add eax, 3
push eax
push edx
call fcn.004a5720
add esp, 0xc
mov edi, eax
push ebx
push esi
call fcn.004815e0
add esp, 4
neg eax
sbb eax, eax
add eax, 3
push eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.004a5720
add esp, 0xc
add edi, eax
push ebx
push esi
call fcn.004815e0
add esp, 4
neg eax
sbb eax, eax
add eax, 3
push eax
call fcn.00504380
add esp, 8
add edi, eax
push ebx
push esi
call fcn.004815e0
add esp, 4
neg eax
sbb eax, eax
add eax, 3
push eax
call fcn.004bcea0
mov ecx, dword [esp + 0x18]
add esp, 8
add eax, ecx
add eax, edi
inc esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x4a5641
jmp 0x4a48cd
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004a7540
mov edx, dword [esp + 0x18]
fstp qword [esp + 0xa4]
push edx
call fcn.004b24f0
add esp, 8
test ebx, 0x20400000
jne 0x4a4ccf
call fcn.00476950
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
test esi, esi
jne 0x4a4abb
mov eax, dword [0x583520]
test eax, eax
jne 0x4a4abb
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
call fcn.004a4280
mov esi, eax
add esp, 0x20
cmp esi, 2
je 0x4a5643
cmp esi, 1
je 0x4a48ca
test esi, esi
jne 0x4a4aae
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4a4aae
mov dword [esp + 0x18], 1
jmp 0x4a4b89
mov dword [esp + 0x18], 0
jmp 0x4a4b89
lea edx, [esp + 0x24]
push 0
lea eax, [esp + 0x84]
push edx
mov edx, dword [ebp + 0x14]
lea ecx, [esp + 0xb0]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x48]
push edi
push ebx
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push edx
call fcn.004a5ed0
add esp, 0x34
test eax, eax
jne 0x4a4b7d
mov eax, dword [esp + 0x58]
test eax, eax
mov eax, dword [esp + 0x24]
jne 0x4a4b13
cmp dword [eax + 0x38], 8
je 0x4a4b7d
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4a4b21
cmp dword [eax + 0x38], 8
jne 0x4a4b7d
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4a4b42
test dword [eax], 0x20000
je 0x4a4b42
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a4b7d
test dword [eax + 4], 0x100000
je 0x4a4b7d
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x4a4b63
test dword [eax], 0x10000
je 0x4a4b63
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a4b7d
test dword [eax + 4], 0x100000
je 0x4a4b7d
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4a4b73
test dword [eax], 0x2000000
jne 0x4a4b7d
mov dword [esp + 0x18], 1
jmp 0x4a4b85
mov dword [esp + 0x18], 0
test esi, esi
jne 0x4a4bf2
mov eax, dword [0x583520]
test eax, eax
jne 0x4a4bf2
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
call fcn.004a4280
mov esi, eax
add esp, 0x20
cmp esi, 2
je 0x4a5643
cmp esi, 1
je 0x4a48ca
test esi, esi
jne 0x4a4cb1
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a4cb1
mov esi, 1
jmp 0x4a4cb3
lea edx, [esp + 0x20]
push 0
lea eax, [esp + 0x8c]
push edx
mov edx, dword [ebp + 0x14]
lea ecx, [esp + 0xb0]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x48]
push edi
push ebx
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [ebp + 0xc]
push eax
push ecx
push edx
call fcn.004a5ed0
add esp, 0x34
test eax, eax
jne 0x4a4cb1
mov eax, dword [esp + 0x58]
test eax, eax
mov eax, dword [esp + 0x20]
jne 0x4a4c4a
cmp dword [eax + 0x38], 8
je 0x4a4cb1
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4a4c58
cmp dword [eax + 0x38], 8
jne 0x4a4cb1
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4a4c79
test dword [eax], 0x20000
je 0x4a4c79
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a4cb1
test dword [eax + 4], 0x100000
je 0x4a4cb1
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x4a4c9a
test dword [eax], 0x10000
je 0x4a4c9a
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a4cb1
test dword [eax + 4], 0x100000
je 0x4a4cb1
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4a4caa
test dword [eax], 0x2000000
jne 0x4a4cb1
mov esi, 1
jmp 0x4a4cb3
xor esi, esi
call fcn.00476960
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x4a533e
mov ebx, dword [ebp + 0x14]
test esi, esi
jne 0x4a5441
mov edi, ebx
and edi, 0x200000
mov dword [esp + 0xa0], edi
jne 0x4a4cec
test ebx, 0x10000000
je 0x4a4dbd
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x18]
mov ecx, eax
shl ecx, 5
add ecx, eax
mov eax, dword [esp + 0x40]
lea edx, [ecx*8 + 0x5835c0]
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
call fcn.004ad120
add esp, 0x18
test eax, eax
jne 0x4a4dbd
call fcn.00476950
test ebx, 0x10000000
je 0x4a4d65
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
mov edx, eax
push ecx
shl edx, 5
add edx, eax
push ebx
lea ecx, [esp + 0xf0]
lea eax, [edx*8 + 0x5835c0]
push eax
push ecx
call fcn.004bcd70
add esp, 0x10
test eax, eax
je 0x4a4d97
test edi, edi
je 0x4a4d9e
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
mov ecx, eax
push edx
shl ecx, 5
add ecx, eax
push ebx
push eax
lea eax, [esp + 0xf4]
lea edx, [ecx*8 + 0x5835c0]
push edx
push eax
call fcn.00503f80
add esp, 0x14
test eax, eax
jne 0x4a4d9e
mov esi, 1
jmp 0x4a4da0
xor esi, esi
call fcn.00476960
test esi, esi
je 0x4a4dbd
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x4a5641
jmp 0x4a48cd
mov eax, dword [0x583520]
test eax, eax
je 0x4a4e1c
mov edx, dword [0x583b04]
mov eax, dword [0x583b08]
mov ecx, dword [0x583b00]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
mov eax, dword [0x58327c]
lea edx, [esp + 0x8c]
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x583b0c]
push edx
push eax
mov dword [esp + 0xbc], ecx
call fcn.004a5930
add esp, 8
test eax, eax
jne 0x4a48cd
jmp 0x4a4ecc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4a4e2d
cmp eax, 3
jne 0x4a48cd
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4a4e50
mov ecx, dword [0x57c610]
mov eax, dword [0x584ce8]
cmp ecx, eax
je 0x4a4e50
test ebx, 0x8000000
je 0x4a48cd
fld qword [esp + 0x38]
lea edx, [esp + 0xa8]
push edx
call fcn.00547c92
fld qword [esp + 0x34]
push eax
call fcn.00547c92
push eax
call fcn.00456ef0
mov edx, dword [0x58327c]
lea eax, [esp + 0xc8]
fld qword [esp + 0x44]
lea ecx, [esp + 0xc4]
push eax
push ecx
push edx
call fcn.00547c92
fld qword [esp + 0x48]
push eax
call fcn.00547c92
push eax
call fcn.004b67b0
add esp, 0x20
test eax, eax
jne 0x4a48cd
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
lea eax, [esp + 0x8c]
push eax
push ecx
push edx
call fcn.00456ef0
add esp, 0xc
fld qword [esp + 0xa8]
fcom qword [esp + 0x8c]
fnstsw ax
test ah, 0x41
jne 0x4a4efd
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
fstp qword [esp + 0x6c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
jmp 0x4a4f17
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
fstp qword [esp + 0x5c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
fld qword [esp + 0xb0]
fcom qword [esp + 0x94]
fnstsw ax
test ah, 0x41
jne 0x4a4f48
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
fstp qword [esp + 0x74]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
jmp 0x4a4f62
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
fstp qword [esp + 0x64]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
call fcn.00476950
mov eax, 1
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 8]
cmp eax, 1
je 0x4a4f7b
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4a52d8
mov eax, dword [esi]
test al, 0x10
jne 0x4a52c2
test ah, 2
jne 0x4a52c2
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x4a4fa8
cmp dword [esi + 0x38], 8
je 0x4a52c2
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4a4fba
cmp dword [esi + 0x38], 8
jne 0x4a52c2
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4a4fe2
test eax, 0x20000
je 0x4a4fe2
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a52c2
test dword [esi + 4], 0x100000
je 0x4a52c2
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x4a500a
test eax, 0x10000
je 0x4a500a
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a52c2
test dword [esi + 4], 0x100000
je 0x4a52c2
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4a501d
test eax, 0x2000000
jne 0x4a52c2
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x4a5030
test al, 0x40
jne 0x4a52c2
test ebx, 0x20000
je 0x4a5040
test al, 0x40
je 0x4a52c2
mov eax, dword [esi + 0xa4]
mov ecx, dword [0x584ce8]
cmp eax, ecx
je 0x4a5064
test ebx, 0x8000000
je 0x4a52c2
test ecx, ecx
jne 0x4a52c2
test eax, eax
je 0x4a5079
test byte [eax + 0xcc], 1
je 0x4a5079
cmp ecx, eax
jne 0x4a52c2
test byte [esi + 4], 0x80
jne 0x4a52c2
mov edx, dword [0x580b98]
test edx, edx
je 0x4a5095
cmp ecx, eax
jne 0x4a52c2
test eax, eax
je 0x4a50af
test ecx, ecx
jne 0x4a50af
lea edx, [esp + 0x5c]
push edx
push esi
call fcn.004a4190
add esp, 8
mov edi, eax
jmp 0x4a50f0
fld qword [esi + 0x14]
fcomp qword [esp + 0x5c]
fnstsw ax
test ah, 0x41
jne 0x4a50ee
fld qword [esi + 0x24]
fcomp qword [esp + 0x6c]
fnstsw ax
test ah, 1
je 0x4a50ee
fld qword [esi + 0x1c]
fcomp qword [esp + 0x64]
fnstsw ax
test ah, 0x41
jne 0x4a50ee
fld qword [esi + 0x2c]
fcomp qword [esp + 0x74]
fnstsw ax
test ah, 1
je 0x4a50ee
mov edi, 1
jmp 0x4a50f0
xor edi, edi
mov eax, dword [esp + 0xc0]
test eax, eax
jne 0x4a510c
push esi
call fcn.00463830
add esp, 4
test eax, eax
je 0x4a52c2
test edi, edi
jne 0x4a5197
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4a52c2
mov ecx, dword [eax]
test ch, 0x10
jne 0x4a5134
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
test ch, 0x10
je 0x4a52c2
fld qword [esi + 0x14]
fcomp qword [esp + 0x6c]
fnstsw ax
test ah, 0x41
je 0x4a52c2
fld qword [esi + 0x24]
fcomp qword [esp + 0x5c]
fnstsw ax
test ah, 1
jne 0x4a52c2
fld qword [esi + 0x1c]
fcomp qword [esp + 0x74]
fnstsw ax
test ah, 0x41
je 0x4a52c2
fld qword [esi + 0x2c]
fcomp qword [esp + 0x64]
fnstsw ax
test ah, 1
jne 0x4a52c2
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x5c]
push ecx
push edx
push esi
call fcn.00441e60
add esp, 0xc
test eax, eax
je 0x4a52c2
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a51b7
push 0
lea eax, [esp + 0x14]
push 1
push eax
push ebx
push esi
call fcn.004a6570
add esp, 0x14
jmp 0x4a528d
mov ax, word [esi + 0x48]
test ax, ax
je 0x4a5286
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4a5286
and eax, 0xffff
mov edi, eax
mov eax, dword [esp + 0x18]
cmp eax, 1
mov eax, dword [ebp + 8]
je 0x4a51e6
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0xc8]
push ecx
push edi
push eax
call fcn.00417570
add esp, 0xc
test esi, esi
je 0x4a5213
mov eax, dword [esi + 0x34]
test eax, eax
je 0x4a5213
xor edx, edx
mov dx, word [eax + 0x48]
cmp edx, edi
jne 0x4a5213
mov esi, eax
test esi, esi
jne 0x4a51fc
fld qword [esp + 0xc8]
fcomp qword [esp + 0x5c]
fnstsw ax
test ah, 0x41
jne 0x4a52c2
fld qword [esp + 0xd8]
fcomp qword [esp + 0x6c]
fnstsw ax
test ah, 1
je 0x4a52c2
fld qword [esp + 0xd0]
fcomp qword [esp + 0x64]
fnstsw ax
test ah, 0x41
jne 0x4a52c2
fld qword [esp + 0xe0]
fcomp qword [esp + 0x74]
fnstsw ax
test ah, 1
je 0x4a52c2
mov eax, dword [esp + 0x18]
cmp eax, 1
mov eax, dword [ebp + 8]
je 0x4a5272
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x28]
push ebx
push ecx
push 1
push edi
push eax
call fcn.004a64a0
add esp, 0x14
jmp 0x4a528d
mov eax, dword [esi]
or ah, 2
mov dword [esi], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4a52a8
call fcn.004a58c0
push esi
call fcn.0048cbe0
add esp, 4
call fcn.004a5900
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x4a52c2
mov edx, dword [esi + 0xa4]
mov dword [0x57c610], edx
mov esi, dword [esi + 0x34]
test esi, esi
jne 0x4a4f83
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 2
mov dword [esp + 0x18], eax
jle 0x4a4f70
test edi, edi
je 0x4a5314
mov eax, dword [0x584ce8]
test eax, eax
jne 0x4a5314
mov eax, dword [0x584ff8]
test eax, eax
je 0x4a5314
lea eax, [esp + 0x5c]
push ebx
push eax
call fcn.005044a0
mov ecx, dword [esp + 0x18]
add esp, 8
add ecx, eax
mov dword [esp + 0x10], ecx
test ebx, 0x10000000
je 0x4a5334
lea ecx, [esp + 0x5c]
push ebx
push ecx
call fcn.004bd060
mov ecx, dword [esp + 0x18]
add esp, 8
add ecx, eax
mov dword [esp + 0x10], ecx
call fcn.00476960
jmp 0x4a560a
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a539b
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x80]
test bl, 0x80
je 0x4a5367
mov eax, dword [ecx]
mov edx, eax
and edx, 0xe00
cmp edx, 0x400
je 0x4a5389
test ebx, 0x40000
je 0x4a5437
mov eax, dword [ecx]
mov edx, eax
and edx, 0xe00
cmp edx, 0x600
jne 0x4a5437
mov edx, eax
not edx
xor edx, eax
and edx, 0x20
xor edx, eax
mov dword [ecx], edx
jmp 0x4a5437
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
test eax, eax
jle 0x4a53c7
mov eax, dword [ecx + 0xa4]
mov edx, dword [0x57c610]
cmp eax, edx
je 0x4a53c7
mov edx, dword [ebp + 0x14]
test edx, 0x8000000
jne 0x4a53ca
jmp 0x4a48c5
mov edx, dword [ebp + 0x14]
test byte [ecx + 4], 0x80
je 0x4a53ec
test edx, 0x40000000
jne 0x4a53ec
push 2
push 0x5813e8
call fcn.00547180
add esp, 8
jmp 0x4a48ca
mov eax, dword [ecx]
mov ebx, eax
not ebx
xor ebx, eax
and ebx, 0x200
xor ebx, eax
mov dword [ecx], ebx
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x48]
test ax, ax
je 0x4a5434
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x4a5434
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x2c]
and eax, 0xffff
shr ecx, 9
and ecx, 1
push edx
mov edx, dword [ebp + 8]
push ecx
push eax
push edx
call fcn.004a64a0
add esp, 0x14
mov ebx, dword [ebp + 0x14]
test esi, esi
je 0x4a5508
jmp 0x4a5445
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a5498
mov ecx, dword [esp + 0x88]
test bl, 0x80
je 0x4a546b
mov eax, dword [ecx]
mov edx, eax
and edx, 0xe00
cmp edx, 0x400
je 0x4a5489
test ebx, 0x40000
je 0x4a5508
mov eax, dword [ecx]
mov edx, eax
and edx, 0xe00
cmp edx, 0x600
jne 0x4a5508
mov edx, eax
not edx
xor edx, eax
and edx, 0x20
xor edx, eax
mov dword [ecx], edx
jmp 0x4a5508
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
test eax, eax
jle 0x4a54c0
mov eax, dword [ecx + 0xa4]
mov edx, dword [0x57c610]
cmp eax, edx
je 0x4a54c0
test ebx, 0x8000000
je 0x4a48c5
mov eax, dword [ecx]
mov edx, eax
not edx
xor edx, eax
and edx, 0x200
xor edx, eax
mov dword [ecx], edx
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x48]
test ax, ax
je 0x4a5508
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x4a5508
mov ecx, dword [ecx]
mov edx, dword [esp + 0x28]
shr ecx, 9
push ebx
and ecx, 1
push edx
mov edx, dword [ebp + 0xc]
and eax, 0xffff
push ecx
push eax
push edx
call fcn.004a64a0
add esp, 0x14
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4a553c
call fcn.004a58c0
test edi, edi
je 0x4a5526
mov eax, dword [esp + 0x24]
push eax
call fcn.0048cbe0
add esp, 4
test esi, esi
je 0x4a5537
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0048cbe0
add esp, 4
call fcn.004a5900
test edi, edi
je 0x4a55a1
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
test ah, 2
jne 0x4a5565
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a555f
mov edx, dword [esp + 0x80]
test byte [edx], 0x20
jne 0x4a5565
dec dword [esp + 0x10]
jmp 0x4a55a1
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x4a55a1
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4a55a1
mov eax, dword [ecx + 0xa4]
mov edx, dword [0x584ce8]
cmp edx, eax
mov dword [0x57c610], eax
je 0x4a55a1
test ebx, 0x4000000
jne 0x4a55a1
push ecx
call fcn.004488a0
add esp, 4
test esi, esi
je 0x4a5607
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
test ah, 2
jne 0x4a55ca
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a55c4
mov eax, dword [esp + 0x88]
test byte [eax], 0x20
jne 0x4a55ca
dec dword [esp + 0x10]
jmp 0x4a5607
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x4a5607
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4a5607
mov eax, dword [ecx + 0xa4]
mov edx, dword [0x584ce8]
cmp edx, eax
mov dword [0x57c610], eax
je 0x4a5607
test dword [ebp + 0x14], 0x4000000
jne 0x4a5607
push ecx
call fcn.004488a0
add esp, 4
mov ebx, dword [ebp + 0x14]
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x4a5641
jmp 0x4a48cd
cmp esi, 1
jne 0x4a5659
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4a5659
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.004a4230
add esp, 8
call fcn.004bcf30
call fcn.00504410
xor esi, esi
mov ecx, dword [esp + 0x84]
mov eax, esi
mov dword [0x583520], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
test eax, eax
push edi
push 0
jne 0x4a56a6
mov eax, dword [ebp + 8]
push eax
call fcn.004a63d0
mov ecx, dword [ebp + 0xc]
push edi
push 0
push ecx
call fcn.004a63d0
push edi
push 0
call fcn.00504300
push edi
push 0
call fcn.004bce20
mov ecx, dword [esp + 0xac]
add esp, 0x28
mov dword [0x583520], ecx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
push edx
call fcn.004a56e0
mov eax, dword [ebp + 0xc]
push edi
push 0
push eax
call fcn.004a56e0
mov ecx, dword [esp + 0x9c]
add esp, 0x18
mov eax, esi
mov dword [0x583520], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret