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

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
xor edi, edi
mov esi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], edi
cmp esi, edi
je 0x4b1793
cmp dword [esi], 0xc0dedbad
jne 0x4b1793
mov ecx, dword [esp + 0x74]
xor ebx, ebx
push 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
call fcn.004aead0
add esp, 4
test eax, eax
je 0x4b0886
mov eax, ecx
call fcn.004b0120
mov eax, dword [esi + 0x28]
cmp eax, 2
jle 0x4b089d
cmp eax, 0xf
jge 0x4b089d
cmp dword [esi + 0xc], 0
je case.default.0x4b08dd
cmp dword [esi + 0xc], 0
je 0x4b08d1
cmp eax, 2
jl 0x4b08d1
cmp eax, 0xf
jge 0x4b08d1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
xor eax, eax
mov edi, ebp
mov ecx, esi
call fcn.004b0610
mov edi, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x4b1669
mov eax, dword [esi + 0x28]
cmp eax, 0x10
ja case.default.0x4b08dd
jmp dword [eax*4 + 0x4b17a0]
push esi
call fcn.004c0e40
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
jne case.0x4b08dd.1
lea eax, [edi + 2]
mov ecx, esi
call fcn.004af980
push 1
lea edx, [esp + 0x54]
push esi
push edx
call fcn.004c1b10
mov ecx, dword [eax]
mov dword [ebp], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 4], edx
mov ecx, dword [eax + 8]
mov dword [ebp + 8], ecx
mov edx, dword [eax + 0xc]
add esp, 0xc
mov dword [ebp + 0xc], edx
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
push esi
call fcn.004aec50
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
jne case.0x4b08dd.1
push 2
lea eax, [esp + 0x64]
push esi
push eax
call fcn.004c1b10
mov ecx, dword [eax]
mov dword [ebp], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 4], edx
mov ecx, dword [eax + 8]
mov dword [ebp + 8], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp + 0xc], edx
mov eax, dword [esi + 0x220]
add esp, 0xc
test eax, eax
je 0x4b098f
cdq
push 0xa
push edx
push eax
push esi
call fcn.004af680
add esp, 0x10
mov eax, dword [esi + 0x224]
test eax, eax
je 0x4b09a7
cdq
push 2
push edx
push eax
push esi
call fcn.004af680
add esp, 0x10
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
push ecx
push esi
call fcn.004b79b0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x10], edi
cmp edi, 0x59
jne 0x4b09f3
lea eax, [edi - 0x58]
mov ecx, esi
call fcn.004af980
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x28]
lea edx, [esi + 0x10]
push edx
push esi
push ecx
add eax, 0x24
push eax
call fcn.004c2f60
add esp, 0x10
xor edi, edi
mov dword [esp + 0x10], edi
jmp case.0x4b08dd.1
cmp dword [esi + 0xe94], 0
je 0x4b0a12
push str.Transfer_was_pending__now_try_another
push esi
call fcn.004c81e0
mov eax, dword [esi + 0x70]
add esp, 8
call fcn.004b0120
test edi, edi
jne case.0x4b08dd.1
cmp dword [esp + 0x34], edi
je 0x4b0a28
lea eax, [edi + 3]
jmp 0x4b1615
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0xffffffff
je 0x4b0a41
mov eax, 8
jmp 0x4b1615
mov edx, dword [esi + 0xc]
push edx
call fcn.004be970
add esp, 4
mov ecx, esi
test eax, eax
je 0x4b0a5d
mov eax, 5
jmp 0x4b1617
mov eax, 4
jmp 0x4b1617
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], 0
cmp dword [eax + 0x27c], 0
je 0x4b0a83
mov ebx, dword [eax + 0xac]
jmp 0x4b0a94
cmp dword [eax + 0x29c], 0
je 0x4b0a91
mov ebx, dword [eax + 0x7c]
jmp 0x4b0a94
mov ebx, dword [eax + 0x64]
mov eax, dword [eax + 0xc4]
push eax
push ebx
push esi
call fcn.004c3d00
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x4b0ad8
push ebx
push 0x5d37a8
xor edi, edi
push esi
mov dword [esi + 0xb24], eax
mov dword [esi + 0xb38], 1
mov dword [esp + 0x1c], edi
call fcn.004c81e0
add esp, 0xc
cmp dword [esp + 0x20], edi
jne 0x4b0aec
lea ecx, [esp + 0x20]
push ecx
push esi
call fcn.004c4740
mov edi, eax
add esp, 8
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.004aecf0
cmp dword [esp + 0x20], 0
je 0x4b0b56
lea edx, [esp + 0x1c]
push edx
push esi
call fcn.004c4790
mov edi, eax
add esp, 8
mov dword [esp + 0x10], edi
test edi, edi
je 0x4b0b1f
mov dword [esi + 0xc], 0
jmp 0x4b0b56
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0xffffffff
je 0x4b0b35
mov eax, 8
jmp 0x4b0b4f
mov eax, dword [esi + 0xc]
push eax
call fcn.004be970
add esp, 4
test eax, eax
mov eax, 5
jne 0x4b0b4f
mov eax, 4
mov ecx, esi
call fcn.004af980
test edi, edi
je case.0x4b08dd.1
mov dword [esp + 0x18], 1
jmp case.0x4b08dd.1
lea ecx, [esp + 0x1c]
push ecx
push esi
call fcn.004cd7b0
mov edi, eax
mov eax, dword [esi + 0xc]
add esp, 8
cmp dword [eax + 0x28c], 0
mov dword [esp + 0x10], edi
je 0x4b0bac
xor edi, edi
push edi
xor ecx, ecx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x14], edi
call fcn.004b0170
add esp, 4
lea eax, [edi + 2]
jmp 0x4b1615
test edi, edi
jne 0x4b0b5e
cmp dword [eax + 0xb8], 2
jne 0x4b0bc5
cmp dword [eax + 0x274], edi
je case.0x4b08dd.1
push eax
call fcn.004be950
add esp, 4
test eax, eax
je case.0x4b08dd.1
mov dword [esp + 0x14], 0xffffffff
mov eax, 6
jmp 0x4b1615
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x38]
push edx
push 0
push eax
push esi
call fcn.004c6200
add esp, 0x10
cmp dword [esp + 0x38], 0
mov edi, eax
mov dword [esp + 0x10], edi
je 0x4b0c55
test edi, edi
jne 0x4b0c5d
mov eax, dword [esi + 0xc]
cmp dword [eax + 0xb8], 2
jne 0x4b0c21
cmp dword [eax + 0x274], edi
je 0x4b0c2e
push eax
call fcn.004be970
add esp, 4
test eax, eax
je 0x4b0c38
mov eax, 5
jmp 0x4b1615
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x288]
neg eax
sbb eax, eax
mov dword [esp + 0x14], 0xffffffff
add eax, 6
jmp 0x4b1615
test edi, edi
je case.0x4b08dd.1
push esi
call fcn.0053f5e0
push 1
mov ecx, edi
call fcn.004b0170
add esp, 8
mov dword [esp + 0x18], 1
jmp case.0x4b08dd.1
lea edx, [esp + 0x1c]
push edx
mov ebx, esi
call fcn.004aeb90
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
jne 0x4b0c5d
mov ecx, esi
cmp dword [esp + 0x1c], eax
jne 0x4b0ca5
lea eax, [edi + 7]
jmp 0x4b1617
mov eax, 8
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
lea edx, [esp + 0x1c]
call fcn.004aeb30
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
jne 0x4b0c5d
cmp dword [esp + 0x1c], eax
je case.0x4b08dd.1
lea eax, [edi + 8]
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
xor ebx, ebx
cmp dword [esi + 0x1f0], ebx
je 0x4b0d6f
push 1
push esi
call fcn.004af930
mov eax, dword [esi + 0xf84]
mov ecx, dword [esi + 0xf50]
push eax
push ecx
mov ecx, dword [esi + 0x1f4]
lea edx, [esi + 0xf54]
push edx
mov edx, dword [esi + 0x1f0]
lea eax, [esi + 0xf20]
push eax
push ecx
call edx
push ebx
push esi
mov edx, eax
call fcn.004af930
add esp, 0x24
cmp edx, ebx
je 0x4b0d6f
push str.operation_aborted_by_pre_request_callback
push esi
call fcn.004c8260
mov edi, 0x2a
push esi
mov dword [esp + 0x1c], edi
call fcn.0053f5e0
push ebx
mov ecx, edi
call fcn.004b0170
add esp, 0x10
mov dword [esp + 0x18], 1
jmp case.0x4b08dd.1
cmp dword [esi + 0x7fc], ebx
je 0x4b0da3
mov eax, dword [esi + 0xc]
push ebx
push eax
call fcn.004c5b70
add esp, 8
mov eax, 0xe
mov ecx, esi
call fcn.004af980
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
lea ecx, [esp + 0x24]
push ecx
mov edx, esi
call fcn.004aeaf0
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
cmp edi, ebx
jne 0x4b0e53
cmp dword [esp + 0x24], ebx
jne 0x4b0e1c
cmp dword [esi + 0xe78], ebx
je 0x4b0e07
mov eax, dword [esi + 0xeb0]
cmp eax, 7
je 0x4b0dde
cmp eax, 5
jne 0x4b0e07
push ebx
xor ecx, ecx
call fcn.004b0170
mov eax, dword [esi + 0xc]
add esp, 4
neg eax
sbb eax, eax
add eax, 0xf
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
mov eax, 9
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], ebx
jmp case.0x4b08dd.1
mov edx, dword [esi + 0xc]
mov ecx, esi
cmp dword [edx + 0x2b4], ebx
je 0x4b0e3c
mov eax, 0xa
call fcn.004af980
mov dword [esp + 0x14], ebx
jmp case.0x4b08dd.1
mov eax, 0xb
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
cmp edi, 0x37
jne 0x4b0f22
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x294], ebx
je 0x4b0f22
lea ecx, [esp + 0x20]
push ecx
push esi
mov dword [esp + 0x28], ebx
call fcn.004c14d0
add esp, 8
cmp eax, ebx
je 0x4b0e8f
mov edi, eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], 1
push esi
call fcn.0053f5e0
push ebx
mov ecx, edi
call fcn.004b0170
mov ecx, dword [esp + 0x28]
add esp, 8
cmp ecx, ebx
je 0x4b0f07
cmp eax, ebx
je 0x4b0eca
cmp eax, 0x37
je 0x4b0eca
mov edx, dword [esp + 0x20]
mov edi, eax
push edx
mov dword [esp + 0x14], edi
call dword [0x6434cc]
add esp, 4
jmp case.0x4b08dd.1
push 2
push ecx
push esi
call fcn.004c1170
add esp, 0xc
cmp eax, ebx
jne 0x4b0eb1
mov eax, 2
mov ecx, esi
call fcn.004af980
mov edx, dword [esp + 0x20]
xor edi, edi
push edx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x14], edi
call dword [0x6434cc]
add esp, 4
jmp case.0x4b08dd.1
mov edx, dword [esp + 0x20]
push edx
mov dword [esp + 0x1c], 1
call dword [0x6434cc]
add esp, 4
jmp case.0x4b08dd.1
push esi
call fcn.0053f5e0
add esp, 4
cmp dword [esi + 0xc], ebx
je 0x4b0f3b
push ebx
mov ecx, edi
call fcn.004b0170
add esp, 4
mov dword [esp + 0x18], 1
jmp case.0x4b08dd.1
lea edx, [esp + 0x24]
call fcn.004aeb60
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
jne 0x4b0f89
cmp dword [esp + 0x24], eax
je case.0x4b08dd.1
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x2b4]
neg eax
sbb eax, eax
add eax, 0xb
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
push esi
call fcn.0053f5e0
push 0
jmp 0x4b0c65
lea edx, [esp + 0x3c]
call fcn.004aeb10
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
jne 0x4b0f89
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4b1549
xor ecx, ecx
cmp eax, 1
sete cl
lea ecx, [ecx + ecx + 9]
mov eax, ecx
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x2e0], 0
je 0x4b0fec
mov eax, dword [esp + 0x74]
call fcn.004b0120
mov eax, dword [esi + 0xc]
or ebx, 0xffffffff
cmp dword [eax + 0x348], ebx
jne 0x4b1039
cmp dword [eax + 0x34c], ebx
jne 0x4b1039
cmp dword [esi + 0xe78], 0
je 0x4b1024
mov eax, dword [eax + 0x330]
test dword [eax + 0x4c], 0x1000
jne 0x4b1024
mov dword [esi + 0xeb0], 7
mov eax, 0xe
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], ebx
jmp case.0x4b08dd.1
mov eax, 0xc
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], ebx
jmp case.0x4b08dd.1
push esi
call fcn.004c2780
add esp, 4
test eax, eax
je 0x4b1066
mov edi, 0x2a
mov dword [esp + 0x10], edi
jmp 0x4b1097
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
push esi
mov dword [eax + 0xc], edx
call fcn.004c9750
mov edi, eax
xor eax, eax
add esp, 0x14
mov dword [esp + 0x10], edi
cmp edi, eax
je 0x4b10cd
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x330]
test byte [ecx + 0x4c], 2
jne 0x4b10b6
cmp edi, 0x5c
je 0x4b10b6
push 2
push eax
call fcn.004c5b70
add esp, 8
push esi
call fcn.0053f5e0
push 1
mov ecx, edi
call fcn.004b0170
add esp, 8
jmp case.0x4b08dd.1
mov ecx, dword [esi + 0x250]
mov edx, dword [esi + 0x254]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, ecx
or eax, edx
je 0x4b1159
mov ebx, dword [ebp]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [ebp + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ebp + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [esi + 0x930]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [esi + 0x934]
push edx
mov edx, dword [esi + 0x940]
mov dword [eax + 4], ebx
mov ebx, dword [esi + 0x938]
push ecx
mov ecx, dword [esi + 0x944]
mov dword [eax + 8], ebx
mov ebx, dword [esi + 0x93c]
push ecx
mov ecx, dword [esi + 0x890]
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x894]
push edx
push eax
push ecx
call fcn.004c1d40
add esp, 0x38
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esi + 0x258]
mov ebx, dword [esi + 0x25c]
mov ebp, ecx
xor eax, eax
xor edx, edx
or ebp, ebx
mov ebp, dword [esp + 0x78]
je 0x4b11dd
mov edx, dword [ebp]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 4]
mov dword [eax + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0x948]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esi + 0x94c]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x950]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x954]
push ebx
push ecx
mov ecx, dword [esi + 0x958]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0x95c]
mov edx, dword [esi + 0x88c]
push eax
mov eax, dword [esi + 0x888]
push ecx
push edx
push eax
call fcn.004c1d40
add esp, 0x38
mov ecx, dword [esp + 0x40]
mov ebx, ecx
or ebx, dword [esp + 0x44]
jne 0x4b1223
mov ebx, eax
or ebx, edx
jne 0x4b1223
lea eax, [ebx + 0xc]
mov ecx, esi
call fcn.004af980
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
push esi
mov dword [eax + 0xc], edx
call fcn.004c1e60
add esp, 0x14
jmp case.0x4b08dd.1
mov ebx, dword [esp + 0x44]
cmp ebx, edx
jl 0x4b1243
jg 0x4b1231
cmp ecx, eax
jb 0x4b1243
push 0xb
push ebx
push ecx
push esi
call fcn.004af680
add esp, 0x10
jmp case.0x4b08dd.1
push 0xb
push edx
push eax
push esi
call fcn.004af680
add esp, 0x10
jmp case.0x4b08dd.1
mov ecx, dword [esi + 0x250]
mov edx, dword [esi + 0x254]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, ecx
or eax, edx
je 0x4b12ef
mov ebx, dword [ebp]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [ebp + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ebp + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [esi + 0x930]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [esi + 0x934]
push edx
mov edx, dword [esi + 0x940]
mov dword [eax + 4], ebx
mov ebx, dword [esi + 0x938]
push ecx
mov ecx, dword [esi + 0x944]
mov dword [eax + 8], ebx
mov ebx, dword [esi + 0x93c]
push ecx
mov ecx, dword [esi + 0x890]
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x894]
push edx
push eax
push ecx
call fcn.004c1d40
add esp, 0x38
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esi + 0x258]
mov edx, dword [esi + 0x25c]
xor ebx, ebx
mov eax, ecx
or eax, edx
mov dword [esp + 0x48], ebx
je 0x4b1377
mov ebx, dword [ebp]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [ebp + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ebp + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [esi + 0x948]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [esi + 0x94c]
push edx
mov edx, dword [esi + 0x958]
mov dword [eax + 4], ebx
mov ebx, dword [esi + 0x950]
push ecx
mov ecx, dword [esi + 0x95c]
mov dword [eax + 8], ebx
mov ebx, dword [esi + 0x954]
push ecx
mov ecx, dword [esi + 0x888]
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x88c]
push edx
push eax
push ecx
call fcn.004c1d40
add esp, 0x38
mov dword [esp + 0x48], eax
mov ebx, edx
mov edx, dword [esp + 0x40]
or edx, dword [esp + 0x44]
jne 0x4b1556
mov eax, dword [esp + 0x48]
or eax, ebx
jne 0x4b1556
mov eax, dword [esi + 0xc]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x2c]
push edx
push esi
push eax
call fcn.004c09c0
add esp, 0x10
cmp dword [esp + 0x28], 0
mov edi, eax
mov dword [esp + 0x10], edi
jne 0x4b13d9
cmp edi, 0x38
je 0x4b13d9
cmp edi, 0x5c
je 0x4b13c7
mov ebx, dword [esp + 0x2c]
test edi, edi
je 0x4b1414
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x330]
test byte [edx + 0x4c], 2
jmp 0x4b10a4
lea ecx, [esp + 0x20]
push ecx
push esi
call fcn.004c14d0
add esp, 8
test eax, eax
jne 0x4b1408
xor ebx, ebx
cmp dword [esp + 0x20], ebx
setne bl
test ebx, ebx
je 0x4b13c3
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], 1
jmp 0x4b141f
test edi, edi
jne 0x4b13c7
mov edi, eax
mov dword [esp + 0x10], edi
jmp 0x4b13bf
cmp dword [esp + 0x28], 0
je 0x4b152f
push esi
call fcn.0053f5e0
add esp, 4
cmp dword [esi + 0x128], 0
jne 0x4b14bc
test ebx, ebx
jne 0x4b14e3
cmp dword [esi + 0x124], ebx
je 0x4b14a3
mov eax, dword [esp + 0x20]
push eax
call dword [0x6434cc]
mov eax, dword [esi + 0x124]
push 1
push eax
push esi
mov dword [esp + 0x30], eax
mov dword [esi + 0x124], ebx
call fcn.004c1170
mov ecx, dword [esp + 0x30]
mov edi, eax
push ecx
mov dword [esp + 0x24], edi
call dword [0x6434cc]
add esp, 0x14
test edi, edi
je 0x4b14a3
push 1
mov ecx, edi
mov dword [esp + 0x1c], 1
call fcn.004b0170
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
jne case.0x4b08dd.1
mov eax, 0xe
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
jmp case.0x4b08dd.1
test ebx, ebx
jne 0x4b14e3
mov edx, dword [esp + 0x20]
push edx
call dword [0x6434cc]
mov eax, dword [esi + 0x128]
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esi + 0x128], ebx
lea edi, [ebx + 3]
jmp 0x4b14e8
mov edi, 2
push 0
xor ecx, ecx
call fcn.004b0170
mov ecx, dword [esp + 0x24]
push edi
push ecx
push esi
call fcn.004c1170
mov edi, eax
add esp, 0x10
mov dword [esp + 0x10], edi
test edi, edi
jne 0x4b151c
lea eax, [edi + 2]
mov ecx, esi
call fcn.004af980
mov dword [esp + 0x14], 0xffffffff
mov edx, dword [esp + 0x20]
push edx
call dword [0x6434cc]
add esp, 4
jmp case.0x4b08dd.1
cmp dword [esp + 0x30], 0
je case.0x4b08dd.1
push 8
push 0
push 0
push esi
call fcn.004af680
add esp, 0x10
mov dword [esp + 0x14], 0
jmp case.0x4b08dd.1
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
push esi
mov dword [eax + 0xc], edx
call fcn.004c1e60
add esp, 0x14
mov eax, 0xd
mov ecx, esi
call fcn.004af980
cmp dword [esp + 0x44], ebx
jl 0x4b15b0
jg 0x4b1599
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x40], eax
jb 0x4b15b0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push 0xb
push ecx
push edx
push esi
call fcn.004af680
add esp, 0x10
jmp case.0x4b08dd.1
mov eax, dword [esp + 0x48]
push 0xb
push ebx
push eax
push esi
call fcn.004af680
add esp, 0x10
jmp case.0x4b08dd.1
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], 0xffffffff
test eax, eax
je 0x4b15fa
cmp dword [eax + 0x2e0], 0
je 0x4b15e4
mov eax, dword [esp + 0x74]
call fcn.004b0120
push 0
mov ecx, edi
call fcn.004b0170
add esp, 4
test edi, edi
jne 0x4b15fa
mov edi, eax
mov dword [esp + 0x10], edi
cmp dword [esi + 0xe78], 0
je 0x4b1610
cmp dword [esi + 0xeb0], 7
je 0x4b1610
xor eax, eax
jmp 0x4b1615
mov eax, 0xf
mov ecx, esi
call fcn.004af980
cmp dword [esi + 0xc], 0
mov ebx, dword [esp + 0x14]
je 0x4b1669
mov eax, dword [esi + 0x28]
cmp eax, 2
jl 0x4b1669
cmp eax, 8
jge 0x4b1669
cmp ebx, 0xffffffff
je 0x4b1669
mov ecx, dword [esp + 0x74]
push 0
call fcn.004aead0
add esp, 4
test eax, eax
jne 0x4b1669
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
mov eax, 1
mov edi, ebp
mov ecx, esi
call fcn.004b0610
mov edi, dword [esp + 0x18]
add esp, 8
cmp dword [esi + 0x28], 0xf
jge 0x4b1711
test edi, edi
je 0x4b16cd
mov eax, dword [esp + 0x74]
call fcn.004b0120
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x4b16b7
cmp dword [esp + 0x18], 0
je 0x4b16c6
push esi
call fcn.004ae860
push 1
push ebx
push esi
call fcn.004c34a0
xor eax, eax
cmp edi, 0x1c
sete al
push eax
push ebx
push esi
call fcn.004b6740
add esp, 0x1c
mov eax, 0xf
jmp 0x4b1703
cmp dword [esi + 0x28], 2
jne 0x4b16c6
push esi
call fcn.0053f5e0
add esp, 4
mov eax, 0xf
jmp 0x4b1703
cmp dword [esi + 0xc], 0
je 0x4b170d
push esi
call fcn.004c2780
add esp, 4
test eax, eax
je 0x4b170d
mov ecx, dword [esi + 0xc]
push 2
mov edi, 0x2a
push ecx
mov dword [esp + 0x18], edi
call fcn.004c5b70
xor eax, eax
add esp, 8
cmp dword [esi + 0x28], 0xe
setge al
add eax, 0xe
mov ecx, esi
call fcn.004af980
or ebx, 0xffffffff
cmp dword [esi + 0x28], 0xf
jne 0x4b174d
mov eax, dword [esi + 0x754]
test eax, eax
je 0x4b1726
push edi
push esi
call eax
add esp, 8
jmp 0x4b1741
mov ecx, dword [esp + 0x74]
lea eax, [esi + 0x30]
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
call fcn.004ae700
mov ebx, eax
mov eax, 0x10
mov ecx, esi
call fcn.004af980
cmp ebx, 0xffffffff
je 0x4b0863
mov ecx, dword [esp + 0x74]
push 0
call fcn.004aead0
add esp, 4
test eax, eax
jne 0x4b0863
mov dword [esi + 0x2c], edi
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov dword [esi + 0x2c], edi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x60
ret