Function at 0x4e2d60
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x28
push ebx
xor ebx, ebx
push edi
xor edi, edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], edi
cmp esi, ebx
je 0x4e3b93
cmp dword [esi + 0x883c], 0xc0dedbad
jne 0x4e3b93
push ebp
mov dword [esp + 0x10], ebx
cmp dword [esi + 0x8738], ebx
je 0x4e2ddc
mov eax, dword [esi + 0x8740]
push eax
push esi
push str.Pipe_broke:_handle_0x_p__url___s_n
push esi
call fcn.004e4180
mov eax, dword [esi + 0xc]
add esp, 0x10
cmp eax, 0x10
jge 0x4e2dce
cmp eax, 2
je 0x4e2dc8
mov dword [esi + 0xc], 2
or edi, 0xffffffff
mov dword [esi + 0x10], ebx
mov dword [esi + 0x8738], ebx
mov dword [esi + 8], ebx
jmp 0x4e3b3d
mov eax, dword [esi + 8]
lea ebp, [esi + 8]
cmp eax, ebx
jne 0x4e2e12
mov ecx, dword [esi + 0xc]
cmp ecx, 2
jle 0x4e2e0e
cmp ecx, 0xf
jge 0x4e2e0e
push ecx
push str.In_state__d_with_no_easy_conn__bail_out__n
push esi
call fcn.004e4210
add esp, 0xc
pop ebp
pop edi
mov eax, 4
pop ebx
add esp, 0x28
ret
cmp eax, ebx
je 0x4e2e21
mov ecx, dword [esi + 0xc]
cmp ecx, 2
jle 0x4e2e21
cmp ecx, 0x10
jge 0x4e2e21
mov dword [eax], esi
cmp dword [ebp], ebx
je 0x4e2f79
mov eax, dword [esi + 0xc]
cmp eax, 2
jl 0x4e2f79
cmp eax, 0x10
jge 0x4e2f79
xor ecx, ecx
cmp eax, 7
setle cl
lea edx, [esp + 0x3c]
push ecx
push edx
push esi
call fcn.004e62f0
add esp, 0xc
test eax, eax
jns 0x4e2f79
mov eax, dword [esi + 0xc]
cmp eax, 3
jne 0x4e2e97
mov eax, dword [esi + 0x534]
mov ecx, dword [esi + 0x530]
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push eax
call fcn.004e3d50
push eax
push str.Resolving_timed_out_after__ld_milliseconds
push esi
call fcn.004e4210
add esp, 0x1c
jmp 0x4e2f49
cmp eax, 4
jne 0x4e2eca
mov ecx, dword [esi + 0x534]
mov edx, dword [esi + 0x530]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
call fcn.004e3d50
push eax
push str.Connection_timed_out_after__ld_milliseconds
push esi
call fcn.004e4210
add esp, 0x1c
jmp 0x4e2f49
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
mov edx, dword [esi + 0x534]
je 0x4e2f18
push ecx
mov ecx, dword [esi + 0x70]
push eax
mov eax, dword [esi + 0x74]
push eax
mov eax, dword [esi + 0x530]
push ecx
mov ecx, dword [esi + 0x94]
push edx
mov edx, dword [esi + 0x90]
push eax
push ecx
push edx
call fcn.004e3d50
add esp, 0x10
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_out_of__I64d_bytes_received
push esi
call fcn.004e4210
add esp, 0x1c
jmp 0x4e2f49
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
push eax
mov eax, dword [esi + 0x530]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
call fcn.004e3d50
add esp, 0x10
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_bytes_received
push esi
call fcn.004e4210
add esp, 0x14
mov eax, dword [ebp]
mov dword [eax + 0x24c], 1
cmp dword [esi + 0xc], 0x10
mov dword [esi + 0x10], 0x1c
je 0x4e3b43
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], 0x10
dec dword [eax + 0x10]
jmp 0x4e3b3d
mov eax, dword [esi + 0xc]
cmp eax, 0x11
ja case.default.0x4e2f85
jmp dword [eax*4 + 0x4e3ba0]
push esi
call fcn.00506770
add esp, 4
mov dword [esi + 0x10], eax
cmp eax, ebx
jne case.0x4e2f85.1
mov eax, 2
cmp dword [esi + 0xc], eax
je 0x4e2fad
mov dword [esi + 0xc], eax
push 1
push esi
call fcn.004ec650
mov dword [esp + 0x14], 0xffffffff
jmp 0x4e3a4f
push 2
push esi
call fcn.004ec650
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
push ebp
push esi
call fcn.004e1890
add esp, 0x18
mov dword [esi + 0x10], eax
cmp eax, 0x59
jne 0x4e301a
mov eax, 1
cmp dword [esi + 0xc], eax
je 0x4e2ff3
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 4]
push esi
push ecx
push eax
call fcn.00503170
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0xffffffe5
add eax, 0x1b
mov dword [esi + 0x10], eax
jmp case.0x4e2f85.1
cmp eax, ebx
jne case.0x4e2f85.1
mov edx, dword [ebp]
push edx
push esi
call fcn.00507f40
add esp, 8
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x4e338d
cmp dword [esp + 0x28], ebx
je 0x4e3056
cmp dword [esi + 0xc], 3
je case.0x4e2f85.1
mov dword [esi + 0xc], 3
jmp case.0x4e2f85.1
mov dword [esp + 0xc], 0xffffffff
cmp dword [esp + 0x14], ebx
je 0x4e307e
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x30]
neg eax
sbb eax, eax
add eax, 8
mov ecx, esi
call fcn.004e1930
jmp case.0x4e2f85.1
mov ecx, dword [ebp]
cmp dword [ecx + 0x608], 1
jne 0x4e322e
mov eax, 5
cmp dword [esi + 0xc], eax
je case.0x4e2f85.1
mov dword [esi + 0xc], eax
jmp case.0x4e2f85.1
mov edi, dword [ebp]
mov dword [esp + 0x18], ebx
cmp dword [esi + 0x48], ebx
je 0x4e30bd
push 2
push 3
push esi
call fcn.004ed0a0
add esp, 0xc
mov eax, dword [edi + 0xb0]
mov ecx, dword [edi + 0x98]
lea edx, [esp + 0x2c]
push edx
push eax
push ecx
push edi
call fcn.004dad10
add esp, 0x10
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x4e310e
mov ecx, 1
add dword [eax + 0x10], ecx
mov edx, dword [esp + 0x18]
push str.Hostname_was_found_in_DNS_cache_n
mov dword [edi + 0x4f8], edx
mov dword [edi + 0x4fc], ecx
push esi
mov dword [esi + 0x10], ebx
call fcn.004e4180
mov eax, dword [esp + 0x20]
add esp, 8
cmp dword [esp + 0x2c], ebx
je 0x4e3126
push str.Hostname_in_DNS_cache_was_stale__zapped_n
push esi
call fcn.004e4180
mov eax, dword [esp + 0x20]
add esp, 8
cmp dword [esi + 0x48], ebx
je 0x4e313a
push 3
push esi
call fcn.004ed0e0
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, ebx
jne 0x4e3152
mov ecx, dword [ebp]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.004d9f80
add esp, 8
mov dword [esi + 0x10], eax
mov edi, dword [esp + 0x38]
push edi
mov ecx, esi
call fcn.004e28a0
add esp, 4
cmp dword [esp + 0x18], ebx
je 0x4e31c3
mov eax, dword [ebp]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.004e7cf0
add esp, 8
mov dword [esi + 0x10], eax
cmp eax, ebx
je 0x4e3184
mov dword [ebp], ebx
jmp 0x4e31c3
mov dword [esp + 0xc], 0xffffffff
cmp dword [esp + 0x14], ebx
je 0x4e31a5
mov eax, dword [edi + 0x30]
neg eax
sbb eax, eax
add eax, 8
mov ecx, esi
call fcn.004e1930
jmp 0x4e31c3
mov ecx, dword [ebp]
cmp dword [ecx + 0x608], 1
mov eax, 5
je 0x4e31bb
mov eax, 4
cmp dword [esi + 0xc], eax
je 0x4e31c3
mov dword [esi + 0xc], eax
cmp dword [esi + 0x10], ebx
je case.0x4e2f85.1
mov dword [esp + 0x10], 1
jmp case.0x4e2f85.1
mov eax, dword [ebp]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.00500810
mov ecx, dword [ebp]
add esp, 8
mov dword [esi + 0x10], eax
cmp dword [ecx + 0x2a4], ebx
je 0x4e3219
cmp dword [esi + 0xc], 2
mov dword [esi + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
je case.0x4e2f85.1
mov dword [esi + 0xc], 2
jmp case.0x4e2f85.1
cmp eax, ebx
jne case.0x4e2f85.1
cmp dword [ecx + 0x608], 2
jne case.0x4e2f85.1
mov eax, 4
cmp dword [esi + 0xc], eax
je case.0x4e2f85.1
mov dword [esi + 0xc], eax
jmp case.0x4e2f85.1
mov edx, dword [ebp]
lea ecx, [esp + 0x24]
push ecx
push ebx
push edx
call fcn.004e7330
add esp, 0xc
mov dword [esi + 0x10], eax
cmp dword [esp + 0x24], ebx
je 0x4e3277
cmp eax, ebx
jne 0x4e3277
mov ecx, dword [ebp]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.004dbdd0
add esp, 8
mov dword [esi + 0x10], eax
mov eax, dword [ebp]
cmp dword [eax + 0x2a4], ebx
je 0x4e32a3
cmp dword [esi + 0xc], 2
mov dword [esi + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
je case.0x4e2f85.1
mov dword [esi + 0xc], 2
jmp case.0x4e2f85.1
cmp dword [esi + 0x10], ebx
je 0x4e32b5
mov dword [esp + 0x10], 1
jmp case.0x4e2f85.1
cmp dword [esp + 0x24], ebx
je case.0x4e2f85.1
cmp dword [esp + 0x14], ebx
jne 0x4e3302
cmp dword [eax + 0x608], 1
jne 0x4e32e8
mov eax, 5
cmp dword [esi + 0xc], eax
je 0x4e3317
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], 0xffffffff
jmp case.0x4e2f85.1
mov eax, 6
cmp dword [esi + 0xc], eax
je 0x4e3317
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], 0xffffffff
jmp case.0x4e2f85.1
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x30]
neg eax
sbb eax, eax
add eax, 8
mov ecx, esi
call fcn.004e1930
mov dword [esp + 0xc], 0xffffffff
jmp case.0x4e2f85.1
mov ecx, dword [ebp]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.004dbd50
add esp, 8
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x4e3378
cmp dword [esp + 0x14], ebx
je case.0x4e2f85.1
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x30]
neg eax
sbb eax, eax
add eax, 8
cmp dword [esi + 0xc], eax
je 0x4e33df
mov dword [esi + 0xc], eax
cmp eax, 0x10
jne 0x4e33df
mov eax, dword [esi + 0x40]
dec dword [eax + 0x10]
mov dword [esp + 0xc], 0xffffffff
jmp case.0x4e2f85.1
push esi
call fcn.0048d590
push 1
mov eax, dword [esi + 0x10]
push eax
push ebp
call fcn.004e08a0
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.0x4e2f85.1
mov eax, dword [ebp]
cmp dword [eax + 0x338], ebx
jne case.0x4e2f85.1
mov ecx, dword [eax + 0x33c]
mov ecx, dword [ecx]
cmp ecx, ebx
je case.0x4e2f85.1
xor edx, edx
cmp dword [ecx], esi
sete dl
cmp edx, ebx
je case.0x4e2f85.1
mov dword [eax + 0x338], 1
mov eax, 8
cmp dword [esi + 0xc], eax
je 0x4e33df
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], 0xffffffff
jmp case.0x4e2f85.1
cmp dword [esi + 0x368], ebx
je 0x4e341a
mov eax, dword [ebp]
mov dword [eax + 0x24c], ebx
mov eax, 0xf
cmp dword [esi + 0xc], eax
je 0x4e340a
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
jmp case.0x4e2f85.1
lea ecx, [esp + 0x1c]
push ecx
push ebp
call fcn.004dd200
add esp, 8
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x4e34a3
cmp dword [esp + 0x1c], ebx
jne 0x4e3478
cmp dword [esi + 0x44c], ebx
je 0x4e3462
mov eax, dword [esi + 0x8778]
cmp eax, 6
je 0x4e344d
cmp eax, 4
jne 0x4e3462
push ebx
push ebx
push ebp
call fcn.004e08a0
add esp, 0xc
mov eax, 0xf
jmp 0x4e33d7
mov eax, 9
cmp dword [esi + 0xc], eax
je 0x4e3490
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], ebx
jmp case.0x4e2f85.1
mov edx, dword [ebp]
cmp dword [edx + 0x26c], ebx
je 0x4e3499
mov eax, 0xa
cmp dword [esi + 0xc], eax
je 0x4e3490
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], ebx
jmp case.0x4e2f85.1
mov eax, 0xb
jmp 0x4e33d7
cmp eax, 0x37
jne 0x4e356c
mov eax, dword [ebp]
cmp dword [eax + 0x250], ebx
je 0x4e356c
lea ecx, [esp + 0x18]
push ecx
push eax
mov dword [esp + 0x20], ebx
xor edi, edi
call fcn.00506e20
add esp, 8
cmp eax, ebx
je 0x4e34e0
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], 1
jmp 0x4e34eb
xor edx, edx
cmp dword [esp + 0x18], ebx
setne dl
mov edi, edx
push esi
call fcn.0048d590
mov eax, dword [esi + 0x10]
push ebx
push eax
push ebp
call fcn.004e08a0
add esp, 0x10
cmp edi, ebx
je 0x4e31cc
cmp eax, ebx
je 0x4e3526
cmp eax, 0x37
je 0x4e3526
mov ecx, dword [esp + 0x18]
push ecx
mov dword [esi + 0x10], eax
call dword [0x5ba020]
add esp, 4
jmp case.0x4e2f85.1
mov edx, dword [esp + 0x18]
mov edi, 2
push edi
push edx
push esi
call fcn.00506ad0
add esp, 0xc
cmp eax, ebx
jne 0x4e3556
cmp dword [esi + 0xc], edi
je 0x4e3546
mov dword [esi + 0xc], edi
mov dword [esp + 0xc], 0xffffffff
mov dword [esi + 0x10], ebx
jmp case.0x4e2f85.1
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x18]
push eax
call dword [0x5ba020]
add esp, 4
jmp case.0x4e2f85.1
push esi
call fcn.0048d590
add esp, 4
cmp dword [ebp], ebx
je 0x4e3588
mov ecx, dword [esi + 0x10]
push ebx
push ecx
push ebp
call fcn.004e08a0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x4e2f85.1
mov eax, dword [ebp]
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.004dbd90
add esp, 8
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x4e35cc
cmp dword [esp + 0x1c], ebx
je case.0x4e2f85.1
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x26c]
neg eax
sbb eax, eax
add eax, 0xb
jmp 0x4e3354
push esi
call fcn.0048d590
mov edx, dword [esi + 0x10]
push ebx
push edx
jmp 0x4e3384
mov ecx, dword [ebp]
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.004dd290
add esp, 8
mov dword [esi + 0x10], eax
cmp eax, ebx
jne 0x4e3611
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x4e3490
xor edx, edx
cmp eax, 1
sete dl
lea eax, [edx + edx + 9]
jmp 0x4e3354
push esi
call fcn.0048d590
push ebx
jmp 0x4e3380
mov ecx, dword [ebp]
push ecx
push esi
call fcn.00507f90
mov edx, dword [esp + 0x40]
push edx
call fcn.004e2490
mov eax, dword [ebp]
or ecx, 0xffffffff
add esp, 0xc
cmp dword [eax + 0x2cc], ecx
jne 0x4e364d
cmp dword [eax + 0x2d0], ecx
lea eax, [ecx + 0x10]
je 0x4e3652
mov eax, 0xc
cmp dword [esi + 0xc], eax
je 0x4e365a
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], ecx
jmp case.0x4e2f85.1
mov eax, dword [ebp]
cmp dword [eax + 0x334], ebx
jne case.0x4e2f85.1
mov ecx, dword [eax + 0x340]
mov ecx, dword [ecx]
cmp ecx, ebx
je case.0x4e2f85.1
xor edx, edx
cmp dword [ecx], esi
sete dl
cmp edx, ebx
je case.0x4e2f85.1
mov dword [eax + 0x334], 1
mov eax, 0xd
jmp 0x4e33d7
mov eax, dword [ebp]
push eax
call fcn.004ec8c0
add esp, 4
test eax, eax
je 0x4e36be
mov dword [esi + 0x10], 0x2a
jmp 0x4e36d4
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push ecx
push edx
push esi
call fcn.00505440
add esp, 0xc
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x208]
mov eax, dword [esi + 0x20c]
mov edx, ecx
or edx, eax
je 0x4e3700
cmp dword [esi + 0x4f4], eax
jg case.0x4e2f85.1
jl 0x4e3700
cmp dword [esi + 0x4f0], ecx
jae case.0x4e2f85.1
mov ecx, dword [esi + 0x210]
mov eax, dword [esi + 0x214]
mov edx, ecx
or edx, eax
je 0x4e372c
cmp dword [esi + 0x4ec], eax
jg case.0x4e2f85.1
jl 0x4e372c
cmp dword [esi + 0x4e8], ecx
jae case.0x4e2f85.1
mov eax, 0xd
cmp dword [esi + 0xc], eax
je case.0x4e2f85.1
mov dword [esi + 0xc], eax
jmp case.0x4e2f85.1
mov eax, dword [esi + 0x20c]
mov edx, dword [esi + 0x208]
mov dword [esp + 0x18], ebx
cmp eax, ebx
jl 0x4e37a1
jg 0x4e375c
test edx, edx
je 0x4e37a1
mov ecx, dword [esi + 0x4f4]
mov ebp, dword [esi + 0x4f0]
cmp ecx, eax
jl 0x4e37a1
jg 0x4e3772
cmp ebp, edx
jbe 0x4e37a1
mov edi, dword [esi + 0x2b8]
mov dword [esi + 0xc], 0xe
test edi, edi
jne 0x4e3788
mov edi, 0x4000
push edi
push ecx
push ebp
push eax
push edx
call fcn.005066a0
push eax
push esi
call fcn.004e2370
add esp, 0x1c
jmp case.0x4e2f85.1
mov eax, dword [esi + 0x214]
mov ebp, dword [esi + 0x210]
test eax, eax
jl 0x4e37fc
jg 0x4e37b7
test ebp, ebp
je 0x4e37fc
mov ecx, dword [esi + 0x4ec]
mov edi, dword [esi + 0x4e8]
cmp ecx, eax
jl 0x4e37fc
jg 0x4e37cd
cmp edi, ebp
jbe 0x4e37fc
mov edx, dword [esi + 0x2b8]
mov dword [esi + 0xc], 0xe
test edx, edx
jne 0x4e37e3
mov edx, 0x4000
push edx
push ecx
push edi
push eax
push ebp
call fcn.005066a0
push eax
push esi
call fcn.004e2370
add esp, 0x1c
jmp case.0x4e2f85.1
mov edx, dword [esi + 8]
lea ecx, [esp + 0x20]
lea edi, [esi + 8]
push ecx
push edx
call fcn.005062e0
add esp, 8
mov dword [esi + 0x10], eax
xor ebp, ebp
test byte [esi + 0xf8], 1
jne 0x4e3826
mov eax, dword [edi]
mov dword [eax + 0x334], ebp
test byte [esi + 0xf8], 2
jne 0x4e3837
mov ecx, dword [edi]
mov dword [ecx + 0x338], ebp
cmp dword [esp + 0x20], ebp
jne 0x4e3843
cmp dword [esi + 0x10], 0x38
jne 0x4e386f
mov eax, dword [edi]
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00506e20
add esp, 8
test eax, eax
jne 0x4e386f
xor ebx, ebx
cmp dword [esp + 0x18], ebp
setne bl
cmp ebx, ebp
je 0x4e386f
mov dword [esi + 0x10], ebp
mov dword [esp + 0x20], 1
cmp dword [esi + 0x10], ebp
je 0x4e38bb
mov eax, dword [edi]
mov ecx, dword [eax + 0x2c0]
test byte [ecx + 0x40], 2
jne 0x4e388c
mov dword [eax + 0x24c], 1
push esi
call fcn.0048d590
mov edx, dword [esi + 0x10]
push ebp
push edx
push edi
call fcn.004e08a0
add esp, 0x10
mov eax, dword [esp + 0x18]
test eax, eax
je case.0x4e2f85.1
push eax
call dword [0x5ba020]
add esp, 4
jmp case.0x4e2f85.1
cmp dword [esp + 0x20], ebp
je 0x4e38a0
push esi
call fcn.0048d590
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x340]
push ecx
push esi
call fcn.004db9f0
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x340]
xor edi, edi
add esp, 0xc
cmp dword [eax], edi
je 0x4e38f8
mov eax, dword [eax]
mov ecx, dword [eax]
push 1
push ecx
call fcn.004e2370
add esp, 8
mov edx, dword [esp + 0x38]
push edx
call fcn.004e2490
mov eax, dword [esi + 0x10c]
add esp, 4
cmp eax, edi
jne 0x4e3978
cmp ebx, edi
jne 0x4e398d
cmp dword [esi + 0x108], edi
je 0x4e395e
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x4e392d
push eax
call dword [0x5ba020]
add esp, 4
mov eax, dword [esi + 0x108]
push 1
push eax
push esi
mov dword [esp + 0x24], eax
mov dword [esi + 0x108], edi
call fcn.00506ad0
add esp, 0xc
mov dword [esi + 0x10], eax
cmp eax, edi
jne 0x4e3956
mov dword [esp + 0x18], edi
jmp 0x4e395e
mov dword [esp + 0x10], 1
mov eax, 0xf
cmp dword [esi + 0xc], eax
je 0x4e396b
mov dword [esi + 0xc], eax
mov dword [esp + 0xc], 0xffffffff
jmp 0x4e38a0
cmp ebx, edi
jne 0x4e398d
mov dword [esi + 0x10c], edi
mov dword [esp + 0x18], eax
mov edi, 3
jmp 0x4e3992
mov edi, 2
push 0
lea eax, [esi + 8]
push 0
push eax
call fcn.004e08a0
add esp, 0xc
mov dword [esi + 0x10], eax
test eax, eax
jne 0x4e38a0
mov eax, dword [esp + 0x18]
push edi
push eax
push esi
call fcn.00506ad0
add esp, 0xc
mov dword [esi + 0x10], eax
test eax, eax
jne 0x4e38a0
mov eax, 2
jmp 0x4e33d7
mov eax, dword [ebp]
mov dword [esp + 0xc], 0xffffffff
cmp eax, ebx
je 0x4e3a15
mov ecx, dword [eax + 0x340]
push ecx
push esi
call fcn.004db9f0
mov edx, dword [esp + 0x40]
push edx
call fcn.004e2490
mov eax, dword [esi + 0x10]
push ebx
push eax
push ebp
call fcn.004e08a0
add esp, 0x18
cmp dword [esi + 0x10], ebx
jne 0x4e3a0d
mov dword [esi + 0x10], eax
cmp dword [ebp], ebx
je 0x4e3a15
mov dword [ebp], ebx
cmp dword [esi + 0x44c], ebx
je 0x4e3a30
cmp dword [esi + 0x8778], 6
je 0x4e3a30
cmp dword [esi + 0xc], ebx
je case.0x4e2f85.1
mov dword [esi + 0xc], ebx
jmp case.0x4e2f85.1
cmp dword [esi + 0xc], 0x10
je case.0x4e2f85.1
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], 0x10
dec dword [eax + 0x10]
jmp case.0x4e2f85.1
push ebx
push esi
mov dword [ebp], ebx
call fcn.004e21d0
add esp, 8
mov ecx, dword [esi + 0xc]
mov ebx, 0x10
cmp ecx, ebx
jge 0x4e3b39
mov eax, dword [esi + 8]
xor edi, edi
cmp dword [esi + 0x10], edi
je 0x4e3af0
mov dword [esi + 0x8738], edi
cmp eax, edi
je 0x4e3ace
mov dword [eax + 0x338], edi
mov ecx, dword [esi + 8]
mov dword [ecx + 0x334], edi
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x33c]
push eax
push esi
call fcn.004db9f0
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x340]
push edx
push esi
call fcn.004db9f0
mov eax, dword [esp + 0x48]
push eax
call fcn.004e2490
add esp, 0x14
cmp dword [esp + 0x10], edi
je 0x4e3adc
mov ecx, dword [esi + 8]
push edi
push ecx
call fcn.004dfae0
add esp, 8
mov dword [esi + 8], edi
jmp 0x4e3adc
cmp ecx, 2
jne 0x4e3adc
push esi
call fcn.0048d590
add esp, 4
mov edi, dword [esp + 0xc]
cmp dword [esi + 0xc], ebx
je 0x4e3b3d
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], ebx
dec dword [eax + 0x10]
jmp 0x4e3b3d
cmp eax, edi
je 0x4e3b39
push eax
call fcn.004ec8c0
add esp, 4
test eax, eax
je 0x4e3b39
mov edx, dword [esi + 8]
mov dword [esi + 0x10], 0x2a
xor ecx, ecx
mov dword [edx + 0x24c], 1
mov eax, dword [esi + 0xc]
cmp eax, 0xf
setge cl
add ecx, 0xf
cmp eax, ecx
je 0x4e3b34
mov dword [esi + 0xc], ecx
cmp ecx, ebx
jne 0x4e3b34
mov eax, dword [esi + 0x40]
dec dword [eax + 0x10]
or edi, 0xffffffff
jmp 0x4e3b3d
mov edi, dword [esp + 0xc]
cmp dword [esi + 0xc], 0x10
jne 0x4e3b81
mov edx, dword [esp + 0x38]
lea eax, [esi + 0x14]
mov dword [eax], 1
mov dword [eax + 4], esi
mov ecx, dword [esi + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0x14]
push eax
mov eax, dword [ecx + 4]
push eax
push ecx
call fcn.00503170
add esp, 0xc
neg eax
sbb edi, edi
and edi, 0xfffffffd
mov eax, 0x11
add edi, 3
cmp dword [esi + 0xc], eax
je 0x4e3b81
mov dword [esi + 0xc], eax
pop ebp
mov eax, edi
pop edi
pop ebx
add esp, 0x28
ret
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 0x28
ret
pop edi
mov eax, 2
pop ebx
add esp, 0x28
ret