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

Disassembly:
push 0xffffffffffffffff
push 0x5c5a24
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0xc], ebp
mov eax, dword [ebp + 0x1e0]
test eax, eax
jle 0x4a54ee
mov ecx, dword [ebp + 0x1dc]
test ecx, ecx
je 0x4a673f
mov edx, dword [esp + 0x50]
mov eax, dword [ecx]
and edx, 0xffff
push edx
call dword [eax + 0xb8]
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret 0xc
mov ebx, dword [esp + 0x50]
push ebx
call fcn.0050ce40
mov ecx, dword [0x63fd4c]
add esp, 4
push eax
call fcn.0044f270
cmp bx, 8
jne 0x4a552f
mov eax, dword [0x63fd4c]
push 0
push 0
push 0
mov ecx, dword [eax + 0xa648]
push 0x79
mov edx, dword [ecx]
call dword [edx + 4]
test eax, eax
jne 0x4a673f
jmp 0x4a5562
cmp bx, 0xd
je 0x4a5550
cmp bx, 0xa
je 0x4a5550
cmp bx, 9
je 0x4a5550
test bx, bx
jbe 0x4a5550
cmp bx, 0x20
jb 0x4a673f
cmp bx, 0xe000
jb 0x4a5562
cmp bx, 0xf900
jb 0x4a673f
mov eax, dword [0x63fd4c]
push esi
push edi
or edi, 0xffffffff
mov ecx, dword [eax + 0x84ec]
test ecx, ecx
je 0x4a564d
mov ecx, dword [eax + 0x93a0]
test ecx, ecx
jne 0x4a564d
cmp dword [eax + 0xa7a8], edi
jne 0x4a564d
push ebx
lea ecx, [eax + 0x8508]
call fcn.00593ade
mov ecx, dword [0x63fd4c]
lea eax, [esp + 0x28]
push eax
call fcn.00461b20
mov ecx, dword [eax]
lea edx, [esp + 0x2c]
mov dword [esp + 0x50], 0
mov eax, dword [ecx - 8]
push eax
mov eax, dword [0x63fd4c]
push edx
lea ecx, [eax + 0x8508]
call fcn.0058a951
mov ecx, dword [0x63fd4c]
push eax
add ecx, 0x8508
mov byte [esp + 0x54], 1
call fcn.00593814
lea ecx, [esp + 0x2c]
mov byte [esp + 0x50], 0
call fcn.005936db
lea ecx, [esp + 0x28]
mov dword [esp + 0x50], edi
call fcn.005936db
mov ecx, dword [0x63fd4c]
lea edx, [esp + 0x2c]
push edx
mov esi, dword [ecx + 0x8508]
call fcn.00461b20
mov eax, dword [eax]
push esi
push eax
call fcn.00574f06
add esp, 8
lea ecx, [esp + 0x2c]
test eax, eax
sete bl
call fcn.005936db
test bl, bl
je 0x4a5644
mov ecx, dword [0x63fd4c]
call fcn.00451b90
mov eax, dword [0x63fd4c]
mov ebx, dword [esp + 0x58]
cmp dword [eax + 0x8510], 1
jne 0x4a56f4
mov ecx, dword [eax + 0x93a0]
test ecx, ecx
jne 0x4a56f4
cmp dword [eax + 0xa7a8], edi
jne 0x4a56f4
push ebx
lea ecx, [eax + 0x8518]
call fcn.00593ade
mov eax, dword [0x63fd4c]
lea edx, [esp + 0x2c]
mov ecx, dword [eax + 0x8514]
mov ecx, dword [ecx - 8]
push ecx
push edx
lea ecx, [eax + 0x8518]
call fcn.0058a951
push eax
mov eax, dword [0x63fd4c]
mov dword [esp + 0x54], 2
lea ecx, [eax + 0x8518]
call fcn.00593814
lea ecx, [esp + 0x2c]
mov dword [esp + 0x50], edi
call fcn.005936db
mov eax, dword [0x63fd4c]
mov ecx, dword [eax + 0x8514]
mov eax, dword [eax + 0x8518]
push ecx
push eax
call fcn.00574f06
add esp, 8
test eax, eax
jne 0x4a56f4
mov ecx, dword [0x63fd4c]
push 0x630bd4
call fcn.004781b0
xor esi, esi
mov dword [ebp + 0x1d4], esi
mov ax, word [0x631b38]
cmp ax, 0xd
jne 0x4a5711
cmp bl, 0xa
je 0x4a57a2
cmp dword [esp + 0x5c], esi
jne 0x4a5735
call dword [0x5da8a4]
push eax
call fcn.0058fbe9
cmp eax, ebp
jne 0x4a5735
push ebx
lea ecx, [ebp + 0x218]
call fcn.0050c1c0
jmp 0x4a579c
cmp bx, 0xd
je 0x4a5741
cmp bx, 0xa
jne 0x4a5747
mov dword [ebp + 0x234], esi
cmp bx, 8
jne 0x4a5770
mov eax, dword [ebp + 0x234]
cmp eax, esi
je 0x4a575e
dec eax
mov dword [ebp + 0x234], eax
mov ecx, ebp
call fcn.004cf8b0
mov ax, word [0x631b38]
jmp 0x4a5b41
cmp bx, 0x20
jbe 0x4a577c
inc dword [ebp + 0x234]
cmp bx, 0xd
je 0x4a578d
cmp bx, 0xa
je 0x4a578d
push 1
push ebx
jmp 0x4a5794
push 1
push 0xa0d
lea ecx, [ebp + 0x40]
call fcn.004d2f30
mov ax, word [0x631b38]
cmp bl, 0xd
je 0x4a57ac
cmp bl, 0xa
jne 0x4a57ec
mov ecx, dword [0x63fd4c]
lea esi, [ebp + 0x40]
mov edi, dword [ecx + 0x9f38]
mov ecx, esi
call fcn.004d50e0
cmp eax, edi
jle 0x4a57e6
push 0xa
mov ecx, esi
call fcn.004d6f20
mov edx, dword [0x63fd4c]
mov ecx, esi
mov edi, dword [edx + 0x9f38]
call fcn.004d50e0
cmp eax, edi
jg 0x4a57c6
mov ax, word [0x631b38]
cmp bl, 0x20
je 0x4a581d
cmp bl, 9
jl 0x4a57fb
cmp bl, 0xd
jle 0x4a581d
cmp bl, 0x2e
je 0x4a581d
cmp bl, 0x2d
je 0x4a581d
cmp bl, 0x2c
je 0x4a581d
cmp bl, 0x2a
je 0x4a581d
cmp bl, 0x28
je 0x4a581d
cmp bl, 0x29
jne 0x4a5b41
mov eax, dword [0x7193d4]
mov esi, dword [ebp + 0x50]
test eax, eax
jne 0x4a5868
push 0x3c
call fcn.0058ecf8
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
mov dword [esp + 0x50], 3
je 0x4a584c
mov ecx, eax
call fcn.004aa420
jmp 0x4a584e
xor eax, eax
push 0x45c160
mov dword [esp + 0x54], 0xffffffff
mov dword [0x7193d4], eax
call fcn.005732b4
add esp, 4
mov ecx, dword [0x7193d4]
call fcn.00513080
mov ebx, eax
mov eax, dword [0x7193d4]
test eax, eax
jne 0x4a58bd
push 0x3c
call fcn.0058ecf8
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
mov dword [esp + 0x50], 4
je 0x4a58a1
mov ecx, eax
call fcn.004aa420
jmp 0x4a58a3
xor eax, eax
push 0x45c160
mov dword [esp + 0x54], 0xffffffff
mov dword [0x7193d4], eax
call fcn.005732b4
add esp, 4
mov ecx, dword [0x7193d4]
lea edi, [esi - 1]
mov dword [esp + 0x2c], edi
call fcn.00513070
inc eax
cmp eax, edi
jge 0x4a592a
mov eax, dword [0x7193d4]
test eax, eax
jne 0x4a591c
push 0x3c
call fcn.0058ecf8
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
mov dword [esp + 0x50], 5
je 0x4a5900
mov ecx, eax
call fcn.004aa420
jmp 0x4a5902
xor eax, eax
push 0x45c160
mov dword [esp + 0x54], 0xffffffff
mov dword [0x7193d4], eax
call fcn.005732b4
add esp, 4
mov ecx, dword [0x7193d4]
call fcn.00513070
mov edi, eax
inc edi
cmp edi, ebx
jl 0x4a5b37
lea eax, [edi + edi + 2]
add esi, 0xfffffffe
push eax
call fcn.0058ecf8
mov ecx, eax
mov eax, esi
mov ebp, esi
sub eax, ebx
add esp, 4
sub ebp, edi
inc eax
mov word [ecx + edi*2], 0
inc ebp
mov dword [esp + 0x28], ecx
lea edi, [ecx + edi*2 - 2]
cmp esi, eax
mov ecx, esi
jle 0x4a597a
mov edx, dword [esp + 0x14]
dec ecx
sub edi, 2
cmp ecx, eax
mov edx, dword [edx + 0x4c]
mov dx, word [edx + ecx*2 + 2]
mov word [edi + 2], dx
jg 0x4a5962
cmp eax, ebp
mov dword [esp + 0x1c], 0
mov ebx, eax
jl 0x4a5b1a
mov eax, dword [esp + 0x14]
test ebx, ebx
mov ecx, dword [eax + 0x4c]
mov dx, word [ecx + ebx*2]
mov word [edi], dx
je 0x4a59cd
mov eax, dword [eax + 0x4c]
mov al, byte [eax + ebx*2 - 2]
cmp al, 0x20
je 0x4a59cd
cmp al, 9
jl 0x4a59b1
cmp al, 0xd
jle 0x4a59cd
cmp al, 0x2e
je 0x4a59cd
cmp al, 0x2d
je 0x4a59cd
cmp al, 0x2c
je 0x4a59cd
cmp al, 0x2a
je 0x4a59cd
cmp al, 0x28
je 0x4a59cd
cmp al, 0x29
jne 0x4a5a9c
push edi
call fcn.005753e7
mov eax, dword [0x7193dc]
add esp, 4
test eax, eax
jne 0x4a5a3d
push 0x14
call fcn.0058ecf8
mov esi, eax
add esp, 4
mov dword [esp + 0x34], esi
test esi, esi
mov dword [esp + 0x50], 6
je 0x4a5a20
mov dword [esi], 0x5e34dc
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x13]
push ecx
push edx
lea ecx, [esi + 4]
mov byte [esp + 0x58], 7
call fcn.004aa600
mov dword [esi], 0x5e34d8
jmp 0x4a5a22
xor esi, esi
push 0x4aa5e0
mov dword [esp + 0x54], 0xffffffff
mov dword [0x7193dc], esi
call fcn.005732b4
add esp, 4
mov al, byte [esp + 0x58]
mov esi, dword [0x7193dc]
push 0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3c], al
call fcn.004aa6b0
push edi
call fcn.005745c3
add esp, 4
lea ecx, [esp + 0x38]
push eax
push edi
call fcn.004aa960
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], 8
push ecx
lea ecx, [esi + 4]
call fcn.004aa300
mov esi, dword [eax]
push 1
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], 0xffffffff
call fcn.004aa6b0
test esi, esi
je 0x4a5a9c
mov dword [esp + 0x1c], esi
dec ebx
sub edi, 2
cmp ebx, ebp
jge 0x4a598c
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a5b1a
mov edx, dword [esp + 0x14]
mov ebx, eax
mov eax, dword [esp + 0x2c]
push 1
lea esi, [edx + 0x40]
push eax
mov ecx, esi
lea edi, [ebx + 4]
call fcn.004d6960
push 1
push 0
mov ecx, edi
call fcn.0050c960
push eax
mov ecx, esi
call fcn.004d2f30
mov al, byte [ebx + 0x24]
test al, al
je 0x4a5af7
push 1
push 1
mov ecx, edi
call fcn.0050c960
push eax
mov ecx, esi
call fcn.004d2f30
mov eax, dword [esp + 0x58]
cmp ax, 0xd
je 0x4a5b0c
cmp ax, 0xa
je 0x4a5b0c
push 1
push eax
jmp 0x4a5b13
push 1
push 0xa0d
mov ecx, esi
call fcn.004d2f30
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0058ed21
mov ax, word [0x631b38]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x18]
add esp, 4
jmp 0x4a5b41
mov ax, word [0x631b38]
mov ebx, dword [esp + 0x58]
mov edx, dword [0x63fd4c]
mov ecx, dword [edx + 0x93a0]
test ecx, ecx
jne 0x4a6722
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x4a6722
cmp bl, 0x20
je 0x4a5b92
cmp bl, 9
jl 0x4a5b70
cmp bl, 0xd
jle 0x4a5b92
cmp bl, 0x2e
je 0x4a5b92
cmp bl, 0x2d
je 0x4a5b92
cmp bl, 0x2c
je 0x4a5b92
cmp bl, 0x2a
je 0x4a5b92
cmp bl, 0x28
je 0x4a5b92
cmp bl, 0x29
jne 0x4a671a
mov ecx, dword [ebp + 0x238]
test ecx, ecx
jle 0x4a672c
cmp al, 0x20
je 0x4a672c
cmp al, 9
jl 0x4a5bb4
cmp al, 0xd
jle 0x4a672c
cmp al, 0x2e
je 0x4a672c
cmp al, 0x2d
je 0x4a672c
cmp al, 0x2c
je 0x4a672c
cmp al, 0x2a
je 0x4a672c
cmp al, 0x28
je 0x4a672c
cmp al, 0x29
je 0x4a672c
mov eax, dword [0x639698]
mov dword [esp + 0x60], eax
lea edi, [ebp + 0x40]
mov dword [esp + 0x50], 9
mov ecx, edi
call fcn.004d2ed0
dec eax
mov dword [esp + 0x28], eax
jns 0x4a5c0c
xor eax, eax
mov dword [esp + 0x28], eax
mov esi, eax
test eax, eax
mov dword [esp + 0x2c], esi
jle 0x4a5c68
dec esi
mov ecx, edi
push esi
call fcn.004d2dd0
push eax
call fcn.0050ce40
add esp, 4
cmp al, 0x20
mov byte [esp + 0x5c], al
je 0x4a5c68
cmp al, 9
jl 0x4a5c38
cmp al, 0xd
jle 0x4a5c68
cmp al, 0x2e
je 0x4a5c68
cmp al, 0x2d
je 0x4a5c68
cmp al, 0x2c
je 0x4a5c68
cmp al, 0x2a
je 0x4a5c68
cmp al, 0x28
je 0x4a5c68
cmp al, 0x29
je 0x4a5c68
mov ecx, dword [esp + 0x5c]
push ecx
push 0
lea ecx, [esp + 0x68]
call fcn.0058a814
test esi, esi
mov dword [esp + 0x2c], esi
jg 0x4a5c16
mov edx, dword [esp + 0x60]
mov eax, dword [edx - 8]
test eax, eax
je 0x4a6703
mov eax, dword [0x63fdf8]
test eax, eax
je 0x4a5ef5
mov eax, dword [0x63fdf4]
test eax, eax
je 0x4a5ef5
mov eax, dword [0x639698]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
push 0
push 0
push 0
lea edx, [esp + 0x24]
push 0
push edx
push 0
push 0
push 0
mov eax, dword [0x63fd4c]
push 0
push 0
push 0
mov ecx, dword [eax + 0x8f44]
push 0
push 0
lea edx, [esp + 0x58]
push 0
push edx
lea edx, [esp + 0x5c]
push edx
push 0
lea edx, [esp + 0x60]
push 0
push edx
push ecx
mov ecx, dword [eax + 0xa63c]
mov byte [esp + 0xa0], 0xb
call fcn.004e3a00
test eax, eax
jl 0x4a5ed9
mov eax, dword [0x63fd4c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
mov eax, dword [eax + 0x8f44]
push edx
push eax
call dword [0x63fdf8]
mov esi, eax
add esp, 0xc
xor edi, edi
test esi, esi
jle 0x4a5ed9
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [0x63fd4c]
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0x8f44]
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
push eax
mov eax, dword [esp + 0x78]
push eax
call dword [0x63fdf4]
add esp, 0x1c
test eax, eax
jne 0x4a5e48
mov ecx, dword [esp + 0x60]
cmp dword [ecx - 8], 3
jle 0x4a5e3a
lea edx, [esp + 0x34]
push 3
push edx
lea ecx, [esp + 0x68]
call fcn.0058a9cd
mov eax, dword [eax]
push 0x630298
push eax
mov byte [esp + 0x58], 0xc
call fcn.00573b74
add esp, 8
test eax, eax
je 0x4a5dc2
lea eax, [esp + 0x30]
push 3
push eax
lea ecx, [esp + 0x68]
call fcn.0058a9cd
mov eax, dword [eax]
push 0x631c6c
push eax
call fcn.00573b74
add esp, 8
lea ecx, [esp + 0x30]
test eax, eax
sete bl
call fcn.005936db
test bl, bl
je 0x4a5dc4
mov bl, 1
lea ecx, [esp + 0x34]
mov byte [esp + 0x50], 0xb
call fcn.005936db
test bl, bl
je 0x4a5e3a
lea ecx, [esp + 0x5c]
push 3
push ecx
lea ecx, [esp + 0x68]
call fcn.0058a898
push edi
mov byte [esp + 0x54], 0xd
call fcn.004a4cb0
add esp, 4
test eax, eax
jne 0x4a5e2c
mov edx, dword [0x63fd4c]
mov ecx, dword [esp + 0x20]
push edi
push ecx
mov eax, dword [edx + 0x8f44]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
push eax
mov eax, dword [esp + 0x74]
push eax
call dword [0x63fdf4]
add esp, 0x1c
test eax, eax
jne 0x4a5e91
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 0xb
call fcn.005936db
inc edi
cmp edi, esi
jl 0x4a5d22
jmp 0x4a5ed9
push edi
xor esi, esi
call fcn.004a4cb0
add esp, 4
test eax, eax
jne 0x4a5e7f
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, 0x6644a0
call fcn.004cd730
test eax, eax
je 0x4a5e7f
mov ecx, dword [0x63fd4c]
push 0x631c5c
call fcn.00478190
mov esi, 1
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x14]
push esi
push edi
push edx
call fcn.004a9840
jmp 0x4a5ed9
mov eax, dword [esp + 0x5c]
mov ecx, 0x6644a0
push eax
xor esi, esi
call fcn.004cd730
test eax, eax
je 0x4a5ebb
mov ecx, dword [0x63fd4c]
push 0x631c5c
call fcn.00478190
mov esi, 1
mov ecx, dword [esp + 0x5c]
push esi
push edi
push ecx
mov ecx, dword [esp + 0x20]
call fcn.004a9840
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 0xb
call fcn.005936db
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 0xa
call fcn.005936db
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], 9
call fcn.005936db
push 0x3a
lea ecx, [esp + 0x64]
call fcn.00593ba2
cmp eax, 2
jne 0x4a5f77
push eax
lea edx, [esp + 0x34]
push 3
push edx
lea ecx, [esp + 0x6c]
call fcn.0058a8bb
mov esi, eax
lea eax, [esp + 0x34]
push 2
push eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x58], 0xe
call fcn.0058a9cd
push esi
lea ecx, [esp + 0x60]
mov bl, 0xf
push eax
push ecx
mov byte [esp + 0x5c], bl
call fcn.0059390a
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x54], 0x10
call fcn.00593814
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], bl
call fcn.005936db
lea ecx, [esp + 0x34]
mov byte [esp + 0x50], 0xe
call fcn.005936db
lea ecx, [esp + 0x30]
mov byte [esp + 0x50], 9
call fcn.005936db
mov eax, dword [0x63fd4c]
xor ebx, ebx
mov edx, dword [eax + 0x8f44]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x4a61bd
mov ecx, dword [0x63fdf8]
test ecx, ecx
je 0x4a61bd
mov ecx, dword [0x63fdf4]
test ecx, ecx
je 0x4a61bd
mov ecx, dword [0x639698]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x5c], ecx
push ebx
mov ecx, edx
push ebx
push ebx
lea edx, [esp + 0x68]
push ebx
push edx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea edx, [esp + 0x54]
push ebx
push edx
lea edx, [esp + 0x60]
mov byte [esp + 0x8c], 0x12
push edx
push ebx
lea edx, [esp + 0x60]
push ebx
push edx
push ecx
mov ecx, dword [eax + 0xa63c]
call fcn.004e3a00
test eax, eax
jl 0x4a619d
mov eax, dword [0x63fd4c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
push ecx
mov eax, dword [eax + 0x8f44]
push edx
push eax
call dword [0x63fdf8]
mov ebp, eax
mov eax, dword [esp + 0x6c]
add esp, 0xc
cmp dword [eax - 8], 4
jle 0x4a610d
push 0x630298
lea ecx, [esp + 0x64]
call fcn.0058aa67
test eax, eax
je 0x4a6051
push 0x631c6c
lea ecx, [esp + 0x64]
call fcn.0058aa67
test eax, eax
jne 0x4a610d
lea ecx, [esp + 0x18]
push 3
push ecx
lea ecx, [esp + 0x68]
call fcn.0058a898
xor esi, esi
mov byte [esp + 0x50], 0x13
test ebp, ebp
jle 0x4a60f7
push esi
call fcn.004a4cb0
add esp, 4
test eax, eax
jne 0x4a60b1
mov edx, dword [0x63fd4c]
mov ecx, dword [esp + 0x24]
push esi
push ecx
mov eax, dword [edx + 0x8f44]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
push eax
mov eax, dword [esp + 0x30]
push eax
call dword [0x63fdf4]
add esp, 0x1c
test eax, eax
jne 0x4a60b8
inc esi
cmp esi, ebp
jl 0x4a6070
jmp 0x4a60f7
mov ecx, dword [esp + 0x18]
xor edi, edi
push ecx
mov ecx, 0x6644a0
call fcn.004cd730
test eax, eax
je 0x4a60e2
mov ecx, dword [0x63fd4c]
push 0x631c5c
call fcn.00478190
mov edi, 1
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edi
push esi
push edx
call fcn.004a9840
mov ebx, 0x8000000
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 0x12
call fcn.005936db
test ebx, ebx
jne 0x4a619d
xor esi, esi
test ebp, ebp
jle 0x4a619d
push esi
call fcn.004a4cb0
add esp, 4
test eax, eax
jne 0x4a6157
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [0x63fd4c]
push esi
push ecx
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x8f44]
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
push eax
mov eax, dword [esp + 0x78]
push eax
call dword [0x63fdf4]
add esp, 0x1c
test eax, eax
jne 0x4a615e
inc esi
cmp esi, ebp
jl 0x4a6117
jmp 0x4a619d
mov ecx, dword [esp + 0x60]
xor edi, edi
push ecx
mov ecx, 0x6644a0
call fcn.004cd730
test eax, eax
je 0x4a6188
mov ecx, dword [0x63fd4c]
push 0x631c5c
call fcn.00478190
mov edi, 1
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x14]
push edi
push esi
push edx
call fcn.004a9840
mov ebx, 0x8000000
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 0x11
call fcn.005936db
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], 9
call fcn.005936db
test ebx, ebx
jne 0x4a61cd
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
call fcn.004a7c50
mov ebx, eax
cmp ebx, 0x8000000
je 0x4a66ff
mov ecx, dword [0x63fd4c]
cmp ebx, 0x3e8
jle 0x4a623c
mov edx, dword [ecx + 0x8f44]
mov eax, dword [edx - 8]
test eax, eax
je 0x4a623c
mov eax, dword [0x63fdf4]
test eax, eax
jne 0x4a66ff
add ebx, 0xfffffc18
lea eax, [esp + 0x5c]
push ebx
push eax
lea ecx, [esp + 0x68]
call fcn.0058a898
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
push 0
push eax
mov byte [esp + 0x58], 0x14
call fcn.004a70a0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 9
call fcn.005936db
jmp 0x4a66ff
test bl, 0x40
je 0x4a63d6
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00593450
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 0x15
call fcn.00593bfd
mov eax, dword [0x63fd4c]
xor esi, esi
mov edi, dword [eax + 0x8efc]
test edi, edi
jle 0x4a62a1
jmp 0x4a6279
mov eax, dword [0x63fd4c]
mov edx, dword [eax + 0x8ef8]
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [edx + esi*4]
mov eax, dword [edx + esi*4]
push eax
call fcn.00573b74
add esp, 8
test eax, eax
je 0x4a629c
inc esi
cmp esi, edi
jl 0x4a6274
mov eax, dword [0x63fd4c]
cmp esi, dword [eax + 0x8f10]
jge 0x4a63c3
mov edx, dword [eax + 0x8f44]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x4a63c3
add eax, 0xa024
lea ecx, [esp + 0x5c]
push eax
call fcn.00593450
mov eax, dword [esp + 0x5c]
mov bl, 0x16
mov byte [esp + 0x50], bl
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x4a62f4
mov ecx, dword [0x63fd4c]
add ecx, 0xa020
push ecx
lea ecx, [esp + 0x60]
call fcn.00593814
mov edx, dword [esp + 0x5c]
cmp dword [edx - 8], 1
jle 0x4a6391
push 0x44
lea ecx, [esp + 0x60]
call fcn.00593ba2
cmp eax, 0xffffffff
je 0x4a6391
mov eax, dword [0x63fd4c]
lea ecx, [esp + 0x1c]
add eax, 0x8fc4
push eax
call fcn.00593450
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], 0x17
call fcn.00593bfd
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4a6367
push 0x631c58
push eax
call fcn.00573b74
add esp, 8
test eax, eax
je 0x4a6367
mov ecx, dword [esp + 0x1c]
push 0x631c54
push ecx
call fcn.00573b74
add esp, 8
test eax, eax
jne 0x4a6382
mov edx, dword [0x63fd4c]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0x8f0c]
mov esi, dword [eax + esi*4]
push esi
push 7
call fcn.004a7080
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], bl
call fcn.005936db
jmp 0x4a63b5
mov eax, dword [0x63fdf4]
test eax, eax
jne 0x4a63b5
mov ecx, dword [0x63fd4c]
push 0
mov edx, dword [ecx + 0x8ef8]
mov ecx, dword [esp + 0x18]
mov esi, dword [edx + esi*4]
push esi
call fcn.004a70a0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 0x15
call fcn.005936db
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 9
call fcn.005936db
jmp 0x4a66ff
test bl, 1
je 0x4a65fb
lea eax, [esp + 0x5c]
xor edi, edi
push eax
call fcn.00461b20
mov eax, dword [eax]
mov ecx, dword [esp + 0x60]
push eax
push ecx
call fcn.00574f06
add esp, 8
lea ecx, [esp + 0x5c]
test eax, eax
setne bl
call fcn.005936db
test bl, bl
je 0x4a659d
lea edx, [esp + 0x60]
lea ecx, [esp + 0x5c]
push edx
call fcn.00593450
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 0x18
call fcn.00593bfd
mov eax, dword [esp + 0x5c]
mov ecx, 0x6644c0
push eax
call fcn.004cd730
test eax, eax
je 0x4a645d
mov ecx, dword [0x63fd4c]
mov edx, dword [ecx + 0x8f44]
mov eax, dword [edx - 8]
test eax, eax
jne 0x4a645d
push 0x631c48
call fcn.00478190
mov ecx, dword [0x63fd4c]
lea eax, [esp + 0x34]
push eax
call fcn.00453100
fadd qword [0x5daf38]
call fcn.00573170
push eax
call fcn.004ca220
mov ecx, dword [0x63fd4c]
mov esi, eax
mov eax, dword [ecx + 0x8f9c]
push eax
call fcn.004c91e0
push eax
call fcn.004c91f0
add esp, 0x10
mov edx, dword [esp + 0x5c]
mov ecx, dword [0x63fd4c]
mov dword [esp + 0x34], eax
push 0
push 0
push 0
push 0
push 0
push eax
push esi
push 0x63f7e8
push edx
call fcn.0048bea0
test eax, eax
jne 0x4a6504
mov eax, dword [0x63fd4c]
mov ecx, dword [eax + 0x9414]
mov edi, dword [ecx + 0x78]
mov ecx, dword [eax + 0x8ed8]
test ecx, ecx
je 0x4a658d
mov edx, dword [esp + 0x60]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x4a658d
mov eax, dword [eax + 0x8f90]
mov ecx, dword [esp + 0x5c]
push 8
push eax
push 0x63f7e8
push ecx
jmp 0x4a6583
mov ecx, dword [0x63fd4c]
cmp eax, 1
jne 0x4a651d
mov edx, dword [ecx + 0x9414]
mov edi, dword [edx + 0x84]
jmp 0x4a6558
test al, 0x10
je 0x4a652f
mov edx, dword [ecx + 0x9414]
mov edi, dword [edx + 0x9c]
jmp 0x4a6558
cmp eax, 0x20000
je 0x4a654c
test al, 0x4e
jne 0x4a654c
test al, 0x20
je 0x4a6558
mov edx, dword [ecx + 0x9414]
mov edi, dword [edx + 0xa8]
jmp 0x4a6558
mov edx, dword [ecx + 0x9414]
mov edi, dword [edx + 0x90]
mov edx, dword [ecx + 0xa874]
test edx, edx
je 0x4a658d
mov edx, dword [esp + 0x5c]
mov esi, dword [edx - 8]
test esi, esi
je 0x4a658d
dec eax
neg eax
sbb al, al
and eax, 0x10
push eax
mov eax, dword [ecx + 0x8f90]
push eax
push 0x63f7e8
push edx
mov ecx, 0x664488
call fcn.004cb610
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 9
call fcn.005936db
jmp 0x4a65af
mov ecx, dword [0x63fd4c]
mov edx, dword [ecx + 0x9414]
mov edi, dword [edx + 0xb4]
xor eax, eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
push edx
mov dword [esp + 0x40], eax
lea edx, [esp + 0x3c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x48], 1
cmp dword [eax + 0x1e4], 1
sete cl
add ecx, 0x10
mov byte [esp + 0x49], cl
mov ecx, dword [esp + 0x30]
push ecx
push edx
lea ecx, [eax + 0x40]
call fcn.004d42e0
jmp 0x4a66ff
mov eax, dword [ecx + 0x8ecc]
test eax, eax
je 0x4a66ff
mov eax, dword [ecx + 0x8f44]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4a66ff
test bl, 0x20
je 0x4a6662
mov eax, dword [0x63fdf4]
test eax, eax
jne 0x4a66ff
lea ecx, [esp + 0x5c]
push 4
push ecx
lea ecx, [esp + 0x68]
call fcn.0058a9cd
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
push 0
push eax
mov byte [esp + 0x58], 0x19
call fcn.004a76a0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 9
call fcn.005936db
jmp 0x4a66ff
test bl, 0x10
je 0x4a66ff
mov eax, dword [0x63fdf4]
test eax, eax
jne 0x4a66ff
push 0x630298
lea ecx, [esp + 0x64]
call fcn.0058aa67
test eax, eax
je 0x4a669c
push 0x631c6c
lea ecx, [esp + 0x64]
call fcn.0058aa67
test eax, eax
jne 0x4a66d9
mov edx, dword [esp + 0x60]
cmp dword [edx - 8], 4
jle 0x4a66d9
lea eax, [esp + 0x34]
push 3
push eax
lea ecx, [esp + 0x68]
call fcn.0058a898
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
push 0
push eax
mov byte [esp + 0x58], 0x1a
call fcn.004a70a0
lea ecx, [esp + 0x34]
mov byte [esp + 0x50], 9
call fcn.005936db
jmp 0x4a66ff
mov ecx, dword [esp + 0x60]
push 0x630298
push ecx
call fcn.00573b74
add esp, 8
test eax, eax
je 0x4a66ff
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x14]
push 0
push edx
call fcn.004a70a0
mov ebx, dword [esp + 0x58]
lea ecx, [esp + 0x60]
mov dword [esp + 0x50], 0xffffffff
call fcn.005936db
mov ebp, dword [esp + 0x14]
jmp 0x4a672c
inc dword [ebp + 0x238]
jmp 0x4a672c
mov dword [ebp + 0x238], 0
mov word [0x631b38], bx
pop edi
mov dword [ebp + 0x1d4], 1
pop esi
mov ecx, dword [esp + 0x40]
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x44
ret 0xc