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

Disassembly:
sub esp, 0x398
push ebx
push ebp
mov ebx, ecx
mov eax, dword [ebx + 0x54]
test al, 0x10
push esi
push edi
je 0x4b539b
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 4]
test edx, edx
mov edi, dword [esp + 0x48c]
je 0x4b44df
test ah, 2
jne 0x4b44d4
mov ecx, ebx
call fcn.00451a10
test eax, eax
je 0x4b4483
mov edx, dword [ebx + 4]
mov ecx, dword [edx + 4]
call fcn.004a6ee0
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 4]
push 0
lea eax, [esp + 0x94]
push eax
push edx
mov ecx, ebx
call fcn.004ab1c0
mov ecx, dword [esp + 0x490]
mov eax, dword [ebx + 4]
mov esi, dword [eax + 4]
push 0
push 1
push ecx
push edi
sub esp, 0xdc
lea edx, [esp + 0x17c]
mov ecx, esp
push edx
call fcn.004ac880
mov ecx, esi
call fcn.004b1920
test eax, eax
je 0x4b539b
jmp 0x4b44df
mov dword [esp + 0x494], 1
lea eax, [esp + 0x3b0]
push eax
lea ecx, [esp + 0x170]
call fcn.004ac880
mov esi, dword [ebx + 4]
lea ecx, [esp + 0x16c]
push ecx
mov edx, ecx
push edx
lea eax, [ebx + 0x30]
push eax
add esi, 0x2c
call fcn.00444910
add esp, 0xc
test esi, esi
je 0x4b4521
push esi
lea ecx, [esp + 0x18c]
call fcn.0047bfc0
push edi
lea ecx, [esp + 0x268]
push ecx
lea edx, [esp + 0x3b8]
push edx
push ebx
call fcn.004b40d0
mov ebp, eax
mov eax, dword [esp + 0x4a0]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x24], ecx
add esp, 0x10
mov ecx, ebx
mov dword [esp + 0x48c], ebp
mov dword [esp + 0x18], edx
call fcn.00451a40
test eax, eax
je 0x4b4583
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x20]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x170]
push eax
call fcn.0044e4e0
test al, al
je 0x4b539b
mov eax, dword [ebx + 0x18]
test eax, eax
mov esi, 0x2000000
je 0x4b47d2
cmp dword [eax + 0x78], 9
jne 0x4b47d2
mov eax, dword [eax + 0x68]
test eax, eax
je 0x4b46ce
mov cl, byte [eax + 0x626]
test cl, cl
je 0x4b46ce
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x78]
shr ecx, 0x19
and ecx, 1
je 0x4b45c9
mov edx, dword [eax + 4]
jmp 0x4b45cb
mov edx, eax
test edx, edx
je 0x4b45e0
test ecx, ecx
je 0x4b45d6
mov eax, dword [eax + 4]
test byte [eax + 0x48], 1
je 0x4b539b
mov eax, dword [ebx + 8]
test dword [eax + 0x54], esi
mov ecx, dword [eax + 0x78]
je 0x4b45ee
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4b460f
test dword [eax + 0x54], esi
je 0x4b45ff
mov edx, dword [eax + 0x78]
mov eax, dword [edx + 4]
jmp 0x4b4602
mov eax, dword [eax + 0x78]
mov eax, dword [eax + 0x48]
shr eax, 1
test al, 1
je 0x4b539b
mov ecx, ebx
and ecx, 0xfffff000
mov edx, dword [ecx]
mov eax, dword [edx + 0x138]
mov eax, dword [eax + 0x244]
test dword [eax + 0x54], esi
mov ecx, dword [eax + 0x78]
je 0x4b4630
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4b4651
test dword [eax + 0x54], esi
je 0x4b4641
mov edx, dword [eax + 0x78]
mov eax, dword [edx + 4]
jmp 0x4b4644
mov eax, dword [eax + 0x78]
mov eax, dword [eax + 0x48]
shr eax, 1
test al, 1
je 0x4b539b
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x128]
test ah, 4
je 0x4b46bf
test ah, 0x10
je 0x4b46bf
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
mov dword [esp + 0x24], ecx
push edx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.004a7d50
mov ecx, eax
call fcn.0047c380
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x20]
push 0
push edx
push eax
call fcn.004318e0
test eax, eax
je 0x4b539b
mov ecx, dword [esp + 0x3ac]
mov dword [ecx], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov ecx, ebx
call fcn.004a6fe0
test al, al
jne 0x4b539b
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x128]
test ch, 0x10
je 0x4b474b
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + 0x68]
test eax, eax
je 0x4b46f3
mov cl, byte [eax + 0x626]
test cl, cl
jne 0x4b474b
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
call fcn.004a7d50
mov ecx, eax
call fcn.0047c380
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + 0x18]
mov edx, dword [esp + 0x20]
push 0
push eax
push edx
call fcn.004318e0
test eax, eax
je 0x4b47d2
mov eax, dword [esp + 0x3ac]
mov dword [eax], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4b4761
mov eax, dword [eax + 8]
test eax, eax
je 0x4b4761
mov eax, dword [eax + 0x3e4]
jmp 0x4b4763
xor eax, eax
push eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x174]
push edx
call fcn.00445dc0
add esp, 0xc
test al, al
je 0x4b47d2
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.004441e0
add esp, 0xc
lea eax, [esp + 0x20]
push eax
push 0
mov ecx, ebx
call fcn.004ab370
push eax
call fcn.00443d80
add esp, 8
test eax, eax
je 0x4b47d2
mov ecx, dword [esp + 0x3ac]
mov dword [ecx], ebx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + 0x18]
call fcn.0042b510
test eax, eax
je 0x4b539b
mov byte [ebx + 0x8c], 1
test dword [ebx + 0x54], esi
mov eax, dword [ebx + 0x78]
je 0x4b47dd
mov eax, dword [eax + 4]
test eax, eax
mov edi, dword [esp + 0x498]
jne 0x4b4afe
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x4b4808
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x4b4808
mov dl, byte [ecx + 0x626]
test dl, dl
jne 0x4b4afe
test edi, edi
je 0x4b4940
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4b4940
mov eax, dword [eax + 0x78]
cmp eax, 6
je 0x4b482c
cmp eax, 0x61
jne 0x4b4940
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4b48a3
jmp 0x4b4840
mov ecx, dword [esi + 4]
cmp word [ecx + 0x56], 0
lea eax, [esp + 0x16c]
lea edx, [esp + 0x14]
je 0x4b4874
push 0
push 0
push edx
push ebp
sub esp, 0xdc
mov ecx, esp
push eax
call fcn.004ac880
mov ecx, esi
call fcn.004b1920
mov esi, eax
jmp 0x4b489f
mov ecx, dword [esp + 0x494]
push edi
push ecx
push edx
push ebp
sub esp, 0xdc
mov ecx, esp
push eax
call fcn.004ac880
mov ecx, dword [esp + 0x498]
push ecx
mov ecx, esi
call fcn.004b4440
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4b4840
mov edx, dword [esp + 0x3ac]
mov eax, dword [edx]
test eax, eax
je 0x4b48c4
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x78]
cmp eax, 6
je 0x4b48c4
cmp eax, 0x61
jne 0x4b539b
lea ecx, [esp + 0x3b0]
push ecx
lea ecx, [esp + 0x94]
call fcn.004ac880
mov eax, dword [esp + 0x490]
mov edx, dword [eax]
mov ecx, dword [esp + 0x494]
mov eax, dword [eax + 4]
push 0
push 0
push 0
push ecx
push 0
mov dword [esp + 0x28], edx
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x30], eax
push ebp
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebx
mov dword [esp + 0x40], 0
call fcn.004b2bb0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4b539b
mov edx, dword [esp + 0x3ac]
mov dword [edx], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov ecx, ebx
call fcn.004a7470
test eax, eax
je 0x4b4e52
lea eax, [esp + 0x3b0]
push eax
lea ecx, [esp + 0x94]
mov ebp, ebx
xor edi, edi
call fcn.004ac880
mov eax, dword [esp + 0x490]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 0x68]
mov esi, dword [ecx + 0xd4]
test esi, esi
je 0x4b4aa4
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x1c], 2
mov eax, dword [edx + 0xb4]
push eax
push esi
lea ecx, [esp + 0x30]
call fcn.0049a500
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 0xb4]
mov ecx, dword [esi + 0xd38]
push edi
push edi
lea edx, [esp + 0x24]
push edx
push ecx
push eax
mov ecx, esi
call fcn.004dbde0
test eax, eax
je 0x4b4a9b
mov edx, dword [esp + 0x1c]
push edx
mov ecx, esi
call fcn.004dac10
test eax, eax
je 0x4b4a9b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
test eax, eax
je 0x4b4a9b
mov eax, dword [eax + 0x54]
test eax, eax
je 0x4b4a9b
mov esi, dword [ebx + 8]
test esi, esi
mov ebp, eax
je 0x4b4a68
lea esp, [esp]
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4b4a1c
mov eax, dword [eax + 8]
jmp 0x4b4a1e
xor eax, eax
cmp esi, dword [eax + 0xe0]
je 0x4b4a68
mov ecx, esi
call fcn.00451a40
test eax, eax
je 0x4b4a61
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x20]
mov al, byte [ecx + 0x139]
test al, al
je 0x4b4a61
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax + 0x220]
add dword [esp + 0x14], ecx
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax + 0x224]
add dword [esp + 0x18], ecx
mov esi, dword [esi + 8]
test esi, esi
jne 0x4b4a10
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x94]
push eax
mov ecx, ebp
call fcn.004ab160
test al, al
jne 0x4b4a96
lea ecx, [esp + 0x28]
call fcn.00498ee0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov edi, 1
lea ecx, [esp + 0x28]
call fcn.00498ee0
mov ecx, dword [esp + 0x494]
mov eax, dword [esp + 0x48c]
push 0
push 0
push 0
push ecx
push edi
lea edx, [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x40]
push edx
mov ecx, ebp
mov dword [esp + 0x44], 0
call fcn.004b2bb0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b539b
mov eax, dword [esp + 0x3ac]
mov dword [eax], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4b4e52
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + 0x78]
cmp eax, 6
je 0x4b4b1d
cmp eax, 0x61
jne 0x4b4e52
mov eax, dword [ebx + 8]
test dword [eax + 0x54], esi
je 0x4b4b2d
mov edx, dword [eax + 0x78]
mov ecx, dword [edx + 4]
jmp 0x4b4b30
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x4b4b4d
test dword [eax + 0x54], esi
mov eax, dword [eax + 0x78]
je 0x4b4b3f
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x48]
shr ecx, 1
test cl, 1
je 0x4b539b
mov edx, ebx
and edx, 0xfffff000
mov eax, dword [edx]
mov ecx, dword [eax + 0x138]
mov eax, dword [ecx + 0x244]
test dword [eax + 0x54], esi
je 0x4b4b70
mov edx, dword [eax + 0x78]
mov ecx, dword [edx + 4]
jmp 0x4b4b73
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x4b4b90
test dword [eax + 0x54], esi
mov eax, dword [eax + 0x78]
je 0x4b4b82
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x48]
shr ecx, 1
test cl, 1
je 0x4b539b
mov ecx, ebx
call fcn.004a6fe0
test al, al
jne 0x4b539b
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x78]
shr eax, 0x19
and eax, 1
mov dword [esp + 0x1c], 0
je 0x4b4bba
mov edx, dword [ecx + 4]
jmp 0x4b4bbc
mov edx, ecx
test edx, edx
je 0x4b4cd4
test eax, eax
je 0x4b4bcb
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 0x48]
shr edx, 1
test dl, 1
je 0x4b4cd4
mov esi, dword [ebx + 0x10]
test esi, esi
mov ebp, dword [esp + 0x498]
je 0x4b4c53
mov edi, dword [esp + 0x48c]
mov edi, edi
mov eax, dword [esi + 4]
cmp word [eax + 0x56], 0
lea edx, [esp + 0x16c]
lea ecx, [esp + 0x14]
je 0x4b4c24
push 0
push 0
push ecx
push edi
sub esp, 0xdc
mov ecx, esp
push edx
call fcn.004ac880
mov ecx, esi
call fcn.004b1920
mov esi, eax
jmp 0x4b4c4f
mov eax, dword [esp + 0x494]
push ebp
push eax
push ecx
push edi
sub esp, 0xdc
mov ecx, esp
push edx
call fcn.004ac880
lea eax, [esp + 0x108]
push eax
mov ecx, esi
call fcn.004b4440
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4b4bf0
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4b4cb6
lea ebx, [ebx]
mov ecx, dword [esi + 4]
mov ax, word [ecx + 0x56]
test ax, ax
je 0x4b4caf
push ebp
push 1
lea edx, [esp + 0x1c]
push edx
movzx edi, ax
mov eax, dword [esp + 0x498]
push eax
sub esp, 0xdc
lea edx, [esp + 0x258]
mov ecx, esp
push edx
call fcn.004ac880
lea eax, [esp + 0x108]
push eax
mov ecx, esi
call fcn.004b4440
mov esi, dword [esi + 0xc]
test esi, esi
je 0x4b4cb6
cmp dword [esi + 0x1c], edi
jle 0x4b4ca3
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4b4c60
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4b4cd4
mov ecx, dword [esp + 0x3ac]
mov dword [ecx], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x78]
shr ecx, 0x19
and ecx, 1
je 0x4b4ce7
mov edx, dword [eax + 4]
jmp 0x4b4ce9
mov edx, eax
test edx, edx
je 0x4b4d0b
test ecx, ecx
je 0x4b4cf4
mov eax, dword [eax + 4]
test byte [eax + 0x48], 1
je 0x4b539b
mov edx, dword [ebx + 0x18]
cmp dword [edx + 0x78], 0x61
je 0x4b539b
lea eax, [esp + 0x3b0]
push eax
lea ecx, [esp + 0x94]
mov edi, ebx
xor esi, esi
call fcn.004ac880
mov eax, dword [esp + 0x490]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + 0xd4]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x4b4e00
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x78]
shr ecx, 0x19
and ecx, 1
je 0x4b4d61
mov edx, dword [eax + 4]
jmp 0x4b4d63
mov edx, eax
test edx, edx
je 0x4b4e00
test ecx, ecx
je 0x4b4d72
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x4b4e00
mov esi, dword [ebx + 8]
test esi, esi
mov edi, dword [eax + 0x44]
je 0x4b4ddf
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4b4d93
mov eax, dword [eax + 8]
jmp 0x4b4d95
xor eax, eax
cmp esi, dword [eax + 0xe0]
je 0x4b4ddf
mov ecx, esi
call fcn.00451a40
test eax, eax
je 0x4b4dd8
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x20]
mov al, byte [ecx + 0x139]
test al, al
je 0x4b4dd8
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax + 0x220]
add dword [esp + 0x14], ecx
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax + 0x224]
add dword [esp + 0x18], ecx
mov esi, dword [esi + 8]
test esi, esi
jne 0x4b4d87
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x94]
push eax
mov ecx, edi
call fcn.004ab160
test al, al
je 0x4b539b
mov esi, 1
mov ecx, dword [esp + 0x494]
mov eax, dword [esp + 0x48c]
push 0
push 0
push 0
push ecx
push esi
lea edx, [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
call fcn.004b2bb0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4b539b
mov eax, dword [esp + 0x3ac]
mov dword [eax], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x4b525d
cmp dword [esi + 0x78], 2
jne 0x4b525d
mov edi, dword [esi + 0x68]
test edi, edi
je 0x4b4f1b
mov al, byte [edi + 0x626]
test al, al
je 0x4b4f1b
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x78]
shr ecx, 0x19
and ecx, 1
je 0x4b4e93
mov edx, dword [eax + 4]
jmp 0x4b4e95
mov edx, eax
test edx, edx
je 0x4b4eaa
test ecx, ecx
je 0x4b4ea0
mov eax, dword [eax + 4]
test byte [eax + 0x48], 1
je 0x4b539b
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x54]
mov edx, 0x2000000
test edx, ecx
mov ecx, dword [eax + 0x78]
je 0x4b4ebf
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4b4edc
test dword [eax + 0x54], edx
mov eax, dword [eax + 0x78]
je 0x4b4ece
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x48]
shr ecx, 1
test cl, 1
je 0x4b539b
mov eax, ebx
and eax, 0xfffff000
mov ecx, dword [eax]
mov eax, dword [ecx + 0x138]
mov eax, dword [eax + 0x244]
test dword [eax + 0x54], edx
mov ecx, dword [eax + 0x78]
je 0x4b4efc
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4b4f20
test dword [eax + 0x54], edx
mov eax, dword [eax + 0x78]
je 0x4b4f0b
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x48]
shr ecx, 1
test cl, 1
je 0x4b539b
jmp 0x4b4f20
mov edx, 0x2000000
mov al, byte [edi + 0x626]
test al, al
je 0x4b501d
test dword [ebx + 0x54], edx
je 0x4b4f3b
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + 4]
jmp 0x4b4f3e
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x4b539b
mov eax, dword [eax + 0x74]
test eax, eax
je 0x4b539b
mov esi, dword [eax + 0x44]
lea edi, [esi + 0x7c]
mov eax, edi
mov ebp, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x16c]
push ecx
lea ecx, [esp + 0x94]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], 0
call fcn.004ac880
lea edx, [esp + 0x90]
push edx
mov eax, edx
push eax
lea ecx, [esi + 0x30]
push ecx
call fcn.00444910
add esp, 0xc
push edi
lea edx, [esp + 0x94]
push edx
mov ecx, esi
call fcn.004afad0
mov ecx, esi
call fcn.004a93e0
push 0
push 1
mov ecx, esi
call fcn.004aae80
mov ecx, dword [esp + 0x48c]
push 0
push 0
push 0
push 0
push 1
lea eax, [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x188]
push edx
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004b2bb0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b5001
mov ecx, dword [esp + 0x3ac]
mov dword [ecx], ebx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edi], ebp
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
jmp 0x4b525d
mov eax, dword [esi + 0x70]
test eax, eax
je 0x4b525d
mov edx, dword [esi + 0x68]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1c], edx
call fcn.00402150
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
push eax
push 0
push ecx
lea ecx, [esp + 0x48]
call fcn.004b5f20
mov edx, dword [ebx + 0x18]
cmp byte [edx + 0x7e], 0x22
jne 0x4b5059
add dword [esp + 0x40], 2
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov al, byte [ecx + esi]
inc ecx
test al, al
mov byte [esp + 0x13], al
je 0x4b525d
xor ebp, ebp
lea eax, [ecx + esi]
add ecx, 2
mov dword [esp + 0x40], ecx
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax]
lea eax, [ecx + esi]
add ecx, 2
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov edi, edx
lea edx, [esp + 0x248]
push edx
mov cl, byte [eax]
add cx, word [ebx + 0x1c]
mov esi, ecx
lea ecx, [esp + 0x40]
call fcn.004b7bb0
mov eax, dword [ebx + 0x18]
cmp byte [eax + 0x7e], 0x22
jne 0x4b50c7
push 1
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x44]
call fcn.004b7d00
test byte [esp + 0x13], 0x10
je 0x4b510b
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x68]
mov eax, dword [ecx + 0x210]
cmp eax, ebp
jne 0x4b50e3
call fcn.004ba290
cmp eax, 8
jl 0x4b510b
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x34], ebp
call fcn.00450750
lea ecx, [esp + 0x28]
call fcn.004506e0
test byte [esp + 0x13], 0x20
je 0x4b5130
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + 0x68]
mov eax, dword [ecx + 0x210]
cmp eax, ebp
jne 0x4b5127
call fcn.004ba290
cmp eax, 8
jl 0x4b5130
inc dword [esp + 0x40]
test byte [esp + 0x13], 8
je 0x4b5235
mov ecx, dword [esp + 0x1c]
push edi
call fcn.004b6f30
cmp eax, ebp
mov dword [esp + 0x20], eax
je 0x4b5235
mov edx, ebx
and edx, 0xfffff000
mov eax, dword [edx]
mov ecx, dword [eax + 0x138]
mov eax, dword [ecx + 0x20]
push eax
call fcn.004893e0
mov edx, dword [ebx + 0x2c]
add esp, 4
mov ebp, eax
push edx
mov ecx, ebp
call fcn.00454e60
mov eax, dword [esp + 0x20]
movzx ecx, si
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x18], eax
lea edi, [ebp + 0x30]
mov ecx, 7
lea esi, [esp + 0x248]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x7c]
call fcn.0047bca0
lea edx, [esp + 0x7c]
push edx
mov ecx, ebp
call fcn.004aed30
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x78], 9
jne 0x4b51ca
lea ecx, [ebx + 0x20]
push ecx
lea ecx, [ebp + 0x20]
call fcn.00442620
mov ecx, ebp
call fcn.004af790
lea edx, [esp + 0x16c]
push edx
lea ecx, [esp + 0x94]
call fcn.004ac880
lea eax, [esp + 0x90]
push eax
mov ecx, eax
push ecx
lea eax, [ebp + 0x30]
push eax
call fcn.00444910
add esp, 0xc
lea edx, [ebp + 0x7c]
push edx
lea eax, [esp + 0x94]
push eax
mov ecx, ebp
call fcn.004afad0
mov edx, dword [esp + 0x48c]
push 0
lea ecx, [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x9c]
push eax
mov ecx, ebp
call fcn.004b1070
test eax, eax
mov ecx, ebp
push 1
jne 0x4b524f
mov edx, dword [ebp]
call dword [edx]
xor ebp, ebp
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov al, byte [ecx + esi]
inc ecx
test al, al
mov byte [esp + 0x13], al
jne 0x4b5073
jmp 0x4b525d
mov eax, dword [esp + 0x3b0]
mov dword [eax], ebx
mov edx, dword [ebp]
call dword [edx]
mov esi, dword [ebx + 0x10]
test esi, esi
mov eax, dword [esp + 0x3ac]
mov ebp, dword [eax]
je 0x4b52f0
mov ecx, dword [esi + 4]
cmp word [ecx + 0x56], 0
lea edx, [esp + 0x14]
je 0x4b52ac
mov eax, dword [esp + 0x48c]
push 0
push 0
push edx
push eax
sub esp, 0xdc
lea edx, [esp + 0x258]
mov ecx, esp
push edx
call fcn.004ac880
mov ecx, esi
call fcn.004b1920
mov esi, eax
jmp 0x4b52ec
mov eax, dword [esp + 0x498]
mov ecx, dword [esp + 0x494]
push eax
mov eax, dword [esp + 0x490]
push ecx
push edx
push eax
sub esp, 0xdc
lea edx, [esp + 0x258]
mov ecx, esp
push edx
call fcn.004ac880
mov eax, dword [esp + 0x498]
push eax
mov ecx, esi
call fcn.004b4440
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4b5271
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4b5363
jmp 0x4b5300
mov ecx, dword [esi + 4]
mov ax, word [ecx + 0x56]
test ax, ax
je 0x4b535c
mov edx, dword [esp + 0x498]
mov ecx, dword [esp + 0x48c]
push edx
push 1
movzx edi, ax
lea eax, [esp + 0x1c]
push eax
push ecx
sub esp, 0xdc
lea edx, [esp + 0x258]
mov ecx, esp
push edx
call fcn.004ac880
mov eax, dword [esp + 0x498]
push eax
mov ecx, esi
call fcn.004b4440
lea ebx, [ebx]
mov esi, dword [esi + 0xc]
test esi, esi
je 0x4b5363
cmp dword [esi + 0x1c], edi
jle 0x4b5350
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4b5300
mov al, byte [ebx + 0x8c]
test al, al
je 0x4b539b
mov esi, dword [esp + 0x3ac]
mov byte [ebx + 0x8c], 0
mov ecx, dword [esi]
test ecx, ecx
je 0x4b539b
call fcn.004a7470
test eax, eax
jne 0x4b539b
mov ecx, dword [esi]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4b5399
cmp dword [eax + 0x78], 2
je 0x4b539b
mov dword [esi], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x398
ret 0xf0