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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov eax, dword [0x583f80]
xor eax, esp
mov dword [esp + 0x80], eax
mov eax, ecx
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [eax + 8]
mov dword [esp + 0x40], ecx
xor ecx, ecx
push esi
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xc]
mov esi, edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebx + 0x88]
push edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x24], edx
mov byte [esp + 0xf], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x6c], ecx
cmp dword [eax + 0x30], ecx
jg 0x48139a
push 0
push 0
push 0
mov edx, 0x11
mov ecx, ebx
call fcn.0042d7a0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x6c], eax
jmp 0x4813d0
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx + 0x10]
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [ecx + 0x40]
mov eax, dword [eax + 0xc]
xorps xmm0, xmm0
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
xor edi, edi
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x54], eax
cmp esi, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ecx
jae 0x481676
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], 1
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edi, dword [esi]
jne 0x48149f
test byte [esi + 0xa], 2
jne 0x48149f
test byte [edi + 4], 1
jne 0x48149f
mov eax, dword [edx + 0x2c]
mov edx, edi
lea ecx, [esp + 0x70]
mov byte [esp + 0x84], 3
mov dword [esp + 0x74], fcn.00444a50
mov dword [esp + 0x78], 0x4449a0
mov dword [esp + 0x88], eax
call fcn.0043fd10
cmp byte [esp + 0x84], 0
je 0x481497
mov edx, edi
mov edi, dword [esp + 0x18]
push 0
mov ecx, dword [edi]
push 0
call fcn.00443970
mov edx, dword [esp + 0x58]
mov ecx, dword [edi]
push eax
call fcn.00443450
add esp, 0xc
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x14]
cmp eax, dword [edx + 0x2c]
jne 0x48165b
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x481657
test byte [edx + 0x24], 8
je 0x4814ce
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x4814ce
test cl, cl
js 0x481657
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x481657
mov ecx, dword [esi + 0x1c]
test ecx, ecx
js 0x481657
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xd]
mov ecx, dword [esi]
mov byte [esp + 0x23], al
call fcn.004427a0
movsx eax, al
sub eax, 0x41
je 0x48152d
dec eax
je 0x48151b
xor eax, eax
cmp byte [esp + 0x23], 0x43
setge al
jmp 0x481525
xor eax, eax
cmp byte [esp + 0x23], 0x42
sete al
test eax, eax
je 0x481653
mov edx, dword [esi + 0x1c]
xor edi, edi
cmp edx, 0x40
jl 0x481541
mov dword [esp + 0x30], connect
jmp 0x48155a
mov eax, edx
bts edi, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edi
xor edi, ecx
cmp eax, 0x40
cmovae ecx, edi
mov dword [esp + 0x30], ecx
cmp byte [esp + 0xf], 0
jne 0x481586
mov ecx, dword [esp + 0x2c]
add edx, edx
mov eax, dword [ecx + 4]
push dword [eax + edx*8]
push dword [ecx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.0040e3d0
add esp, 0x10
mov byte [esp + 0xf], 1
mov eax, dword [esp + 0x30]
and eax, dword [esp + 0x1c]
mov ecx, edi
and ecx, dword [esp + 0x3c]
or ecx, eax
jne 0x481653
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
movzx eax, word [edx + 0x2c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
cmp eax, edx
jge 0x481622
lea eax, [edx + 7]
and eax, 0xfffffff8
mov dword [esp + 0x58], eax
shl eax, 2
push 0
push eax
call fcn.0040c0f0
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
je 0x481efc
mov edx, dword [esp + 0x14]
movzx ecx, word [edx + 0x2c]
shl ecx, 2
push ecx
push dword [edx + 0x30]
push eax
call fcn.00507530
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [ecx + 0x30]
lea eax, [ecx + 0x38]
cmp edx, eax
je 0x48160d
mov ecx, dword [esp + 0x10]
call fcn.0040bd70
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x58]
mov word [ecx + 0x2c], ax
jmp 0x481626
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov eax, dword [ecx + 0x30]
inc dword [esp + 0x28]
or dword [esp + 0x3c], edi
mov dword [eax + ebx*4], esi
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
inc edx
or eax, dword [esp + 0x30]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
jmp 0x48165f
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add esi, 0x30
cmp esi, dword [esp + 0x54]
jb 0x481427
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp 0x48167a
mov esi, dword [esp + 0x60]
not eax
mov word [ecx + 0x28], di
mov word [ecx + 0x18], di
mov dword [ecx + 0x24], 0x4241
mov edi, dword [edx + 0x3c]
or eax, 0x80000000
and eax, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
not esi
movzx ecx, word [eax + 0x2a]
and esi, dword [edx + 0x38]
mov eax, 0x3f
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ecx
cmp ax, cx
jl 0x4816bf
movsx eax, cx
xor esi, esi
mov dword [esp + 0x34], eax
test eax, eax
jle 0x481706
mov edi, dword [esp + 0x1c]
mov ebx, eax
nop
xor edx, edx
mov eax, esi
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x3c]
and ecx, edi
or edx, ecx
je 0x4816f5
inc dword [esp + 0x28]
inc esi
cmp esi, ebx
jl 0x4816d0
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
and edi, 0x80000000
xor eax, eax
or eax, edi
je 0x481724
movsx eax, cx
mov ecx, dword [esp + 0x28]
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x481728
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
lea edx, [ecx + 1]
mov ecx, dword [esi]
push 0
call fcn.004541a0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x481f00
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov dword [edx + 0x20], eax
mov dword [eax], str.auto_index
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x4c]
xor edi, edi
mov esi, dword [eax + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x54]
jae 0x4818f9
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x58], eax
jmp 0x4817a0
mov eax, dword [esi + 0x14]
cmp eax, dword [edx + 0x2c]
jne 0x4818e4
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x4818e4
test byte [edx + 0x24], 8
je 0x4817cf
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x4817cf
test cl, cl
js 0x4818e4
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4818e4
mov ecx, dword [esi + 0x1c]
test ecx, ecx
js 0x4818e4
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xd]
mov ecx, dword [esi]
mov byte [esp + 0xf], al
call fcn.004427a0
movsx eax, al
sub eax, 0x41
je 0x48182e
dec eax
je 0x48181c
xor eax, eax
cmp byte [esp + 0xf], 0x43
setge al
jmp 0x481826
xor eax, eax
cmp byte [esp + 0xf], 0x42
sete al
test eax, eax
je 0x4818e0
mov ecx, dword [esi + 0x1c]
xor esi, esi
cmp ecx, 0x40
jl 0x48183f
mov eax, connect
jmp 0x481852
bts esi, ecx
xor eax, eax
cmp ecx, 0x20
cmovae eax, esi
xor esi, eax
cmp ecx, 0x40
cmovae eax, esi
mov ecx, esi
and ecx, dword [esp + 0x58]
mov dword [esp + 0x10], eax
and eax, dword [esp + 0x40]
or ecx, eax
jne 0x4818dc
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x10]
or dword [esp + 0x58], esi
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov edx, dword [edx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x40], eax
mov ax, word [esi + 0x1c]
mov word [ecx + edi*2], ax
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x10], eax
test dword [edx + 4], 0x100
jne 0x4818be
test eax, eax
je 0x4818ad
test dword [eax + 4], 0x100
je 0x4818ad
mov edx, eax
jmp 0x4818be
mov ecx, dword [esp + 0x18]
call fcn.00442590
test eax, eax
jne 0x4818d0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
call fcn.00442590
mov ecx, 0x564db8
test eax, eax
je 0x4818d2
mov ecx, dword [eax]
mov eax, dword [ebx + 0x20]
inc edi
mov dword [eax + edi*4 - 4], ecx
jmp 0x4818e0
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
add esi, 0x30
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x54]
jb 0x4817a0
mov ebx, dword [esp + 0x38]
xor esi, esi
cmp dword [esp + 0x34], esi
jle 0x481947
mov ebx, dword [esp + 0x44]
xor edx, edx
mov eax, esi
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x3c]
and ecx, dword [esp + 0x1c]
or edx, ecx
je 0x48193c
mov eax, dword [ebx + 4]
inc edi
mov word [eax + edi*2 - 2], si
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4 - 4], 0x564db8
inc esi
cmp esi, dword [esp + 0x34]
jl 0x481905
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
mov ecx, dword [ecx + 0x3c]
and ecx, 0x80000000
xor eax, eax
or eax, ecx
je 0x48198d
mov esi, dword [esp + 0x2c]
mov eax, 0x3f
cmp ax, word [esi + 0x2a]
jge 0x48198d
mov ecx, eax
nop
mov eax, dword [edx + 4]
inc edi
mov word [eax + edi*2 - 2], cx
mov eax, dword [edx + 0x20]
inc ecx
mov dword [eax + edi*4 - 4], 0x564db8
movsx eax, word [esi + 0x2a]
cmp ecx, eax
jl 0x481970
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x48]
or ecx, 0xffffffff
mov word [eax + edi*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
mov dword [eax + edi*4], 0x564db8
mov eax, dword [ecx + 0x28]
mov dword [esi + 8], eax
inc dword [ecx + 0x28]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
mov esi, dword [esi + 8]
inc edx
cmp dword [eax + 0x30], ecx
jg 0x4819dd
push 0
push edx
push esi
mov edx, 0x70
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x481a0f
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
mov ebx, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov esi, dword [eax + 8]
mov ecx, eax
call fcn.00456740
mov edx, eax
test edx, edx
je 0x481a54
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x481a3f
push edx
mov edx, 0xfffffff7
call fcn.0042e400
add esp, 4
jmp 0x481a54
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov edx, dword [esp + 0x48]
movzx eax, byte [edx + 0x2c]
lea esi, [eax + eax*8]
mov eax, dword [esp + 0x4c]
lea esi, [esi + 1]
mov eax, dword [eax]
mov eax, dword [eax + 4]
test byte [eax + esi*8 + 0x28], 0x10
lea esi, [eax + esi*8]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x4c], esi
je 0x481b85
mov ecx, dword [ebx + 0x88]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], ecx
cmp dword [eax + 0x30], ecx
jg 0x481ab5
push 0
push 0
push 0
mov edx, 0x46
mov ecx, ebx
call fcn.0042d7a0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x68], eax
jmp 0x481aeb
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
mov esi, dword [esi + 0x18]
cmp dword [eax + 0x30], ecx
jg 0x481b15
push esi
push 0
push edx
mov edx, 0xd
mov ecx, ebx
call fcn.0042d7a0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x481b47
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
mov ebx, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x88]
cmp dword [eax + 0x30], esi
jg 0x481b6d
push 0
push 0
push edx
mov edx, 0xe
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov esi, eax
jmp 0x481be1
lea eax, [esi + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4], 0xe
jmp 0x481bc1
mov esi, dword [ebx + 0x88]
mov edx, dword [edx + 4]
cmp dword [eax + 0x30], esi
jg 0x481bab
push 0
push 0
push edx
mov edx, 0x24
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov esi, eax
jmp 0x481be1
lea eax, [esi + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4], 0x24
mov ebx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
cmp dword [esp + 0x50], 0
je 0x481c5e
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x10], edx
mov ecx, dword [edx + 0x3c]
mov dword [esp + 0x5c], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x3c], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x481c29
mov edx, dword [edx + 0x40]
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x10]
push 0
mov ecx, dword [ecx]
push eax
call fcn.0040c2b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x64]
add esp, 8
mov dword [edx + 0x40], eax
mov eax, dword [edx + 0x40]
test eax, eax
je 0x481c37
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
push 0x10
push eax
push dword [esp + 0x58]
mov dword [esp + 0x68], eax
push dword [esp + 0x24]
call fcn.00449540
mov eax, dword [esp + 0x24]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + 0x13]
test al, al
jne 0x481c71
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
jmp 0x481c80
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x90]
mov edx, dword [esp + 0x44]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
push dword [eax + 4]
call fcn.00458890
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x88]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x60]
add esp, 0x18
mov eax, dword [eax + 8]
mov dword [esp + 0x10], eax
cmp dword [ecx + 0x30], edx
jg 0x481cd6
mov edx, dword [esp + 0x2c]
push 0
push edx
push eax
mov edx, 0x85
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x481d0c
lea eax, [edx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x481d26
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
mov edx, 0x10
mov word [eax + ecx*4 - 0x12], dx
cmp dword [esp + 0x50], 0
je 0x481d4c
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x481d4c
mov eax, dword [esp + 0x5c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x4c]
test byte [eax + 0x28], 0x10
je 0x481e0b
mov ecx, dword [esp + 0x68]
test ecx, ecx
jns 0x481d69
mov ecx, dword [ebx + 0x88]
dec ecx
mov eax, dword [ebx]
cmp byte [eax + 0x49], 0
je 0x481d78
mov ecx, 0x5890ec
jmp 0x481d81
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x54]
add eax, edi
mov edi, dword [esp + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
push 1
push dword [edi + 0x20]
mov edx, esi
push dword [eax + 4]
call fcn.004811f0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
add esp, 0xc
cmp dword [eax + 0x30], ecx
jg 0x481dd3
push 0
push esi
push 0
mov edx, 0xb
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
and dword [edi + 0x28], 0xffffffef
jmp 0x481e69
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
and dword [edi + 0x28], 0xffffffef
jmp 0x481e69
mov eax, dword [esp + 0x48]
mov ecx, dword [ebx + 0x88]
mov edi, dword [eax + 4]
mov eax, dword [ebx + 0xc]
lea edx, [esi + 1]
cmp dword [eax + 0x30], ecx
jg 0x481e38
push 0
push edx
push edi
mov edx, 5
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x481e69
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
lea edx, [esi + 1]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x481e83
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
mov edx, 3
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [ebx + 0x88]
test esi, esi
jns 0x481e90
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x49], 0
je 0x481e9f
mov eax, 0x5890ec
jmp 0x481ea8
mov eax, dword [ebx + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
mov dword [eax + 8], edx
test ecx, ecx
je 0x481ecb
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x481ecb
movzx eax, al
mov dword [esi + eax*4 + 0x90], ecx
inc byte [esi + 0x13]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebx + 0x88]
test ecx, ecx
jns 0x481edc
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x49], 0
je 0x481eee
mov eax, 0x5890ec
mov dword [eax + 8], edx
jmp 0x481f00
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
jmp 0x481f00
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
test eax, eax
je 0x481f11
mov ecx, dword [esi]
mov edx, eax
call fcn.00443790
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret