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

Disassembly:
sub esp, 0x94
mov eax, dword [ecx + 0x84]
mov dword [esp], ecx
test eax, eax
jne 0x590260
mov eax, dword [ecx + 0x30]
push ebx
mov ebx, dword [ecx + 0x28]
push ebp
mov edx, dword [eax + 8]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x18], edx
push esi
mov edx, dword [eax + 8]
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [0x836be4]
push edi
xor edi, edi
test eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x88], edx
jbe 0x58f6f3
mov ecx, dword [0x836bd8]
mov edx, dword [ecx + edi*4]
cmp edx, 0xffffffff
je 0x58f6e9
mov esi, dword [0x836bdc]
lea ecx, [edx + edx*4]
mov eax, edx
mov ecx, dword [esi + ecx*4]
cmp ecx, 0xffffffff
je 0x58f6ca
mov eax, ecx
lea ecx, [eax + eax*4]
mov ecx, dword [esi + ecx*4]
cmp ecx, 0xffffffff
jne 0x58f6bd
mov ecx, dword [0x836be0]
lea eax, [eax + eax*4]
mov dword [esi + eax*4], ecx
mov dword [0x836be0], edx
mov edx, dword [0x836bd8]
mov dword [edx + edi*4], 0xffffffff
mov eax, dword [0x836be4]
inc edi
cmp edi, eax
jb 0x58f69c
mov eax, dword [0x836c64]
xor edi, edi
test eax, eax
jbe 0x58f753
mov eax, dword [0x836c58]
mov ecx, dword [eax + edi*4]
cmp ecx, 0xffffffff
je 0x58f749
mov esi, dword [0x836c5c]
lea edx, [ecx + ecx*4]
mov eax, ecx
mov edx, dword [esi + edx*4]
cmp edx, 0xffffffff
je 0x58f72b
mov eax, edx
lea edx, [eax + eax*4]
mov edx, dword [esi + edx*4]
cmp edx, 0xffffffff
jne 0x58f71e
mov edx, dword [0x836c60]
lea eax, [eax + eax*4]
mov dword [esi + eax*4], edx
mov eax, dword [0x836c58]
mov dword [0x836c60], ecx
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [0x836c64]
inc edi
cmp edi, eax
jb 0x58f6fe
mov eax, dword [0x836c24]
xor edi, edi
test eax, eax
jbe 0x58f7b4
mov ecx, dword [0x836c18]
mov ecx, dword [ecx + edi*4]
cmp ecx, 0xffffffff
je 0x58f7aa
mov esi, dword [0x836c1c]
lea edx, [ecx + ecx*8]
mov eax, ecx
mov edx, dword [esi + edx*4]
cmp edx, 0xffffffff
je 0x58f78c
mov eax, edx
lea edx, [eax + eax*8]
mov edx, dword [esi + edx*4]
cmp edx, 0xffffffff
jne 0x58f77f
mov edx, dword [0x836c20]
lea eax, [eax + eax*8]
mov dword [esi + eax*4], edx
mov eax, dword [0x836c18]
mov dword [0x836c20], ecx
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [0x836c24]
inc edi
cmp edi, eax
jb 0x58f75e
xor ebp, ebp
test ebx, ebx
jbe 0x58f88e
mov esi, dword [esp + 0x20]
mov eax, dword [0x836bd8]
test eax, eax
je 0x58f81b
mov edi, dword [0x836be4]
push esi
call fcn.00590430
mov ecx, dword [0x836bd8]
add esp, 4
dec edi
and eax, edi
mov eax, dword [ecx + eax*4]
cmp eax, 0xffffffff
je 0x58f81b
mov ecx, dword [0x836bdc]
lea edi, [eax + eax*4]
push esi
shl edi, 2
lea edx, [edi + ecx + 4]
push edx
call fcn.005903a0
add esp, 8
test al, al
jne 0x58f92d
mov ecx, dword [0x836bdc]
mov eax, dword [edi + ecx]
cmp eax, 0xffffffff
jne 0x58f7f1
mov ecx, 0x836bd8
call fcn.00590a00
mov ebx, dword [0x836be4]
push esi
mov edi, eax
call fcn.00590430
mov edx, dword [0x836bdc]
add esp, 4
dec ebx
lea ecx, [edi + edi*4]
and eax, ebx
mov ebx, dword [esi]
shl ecx, 2
lea edx, [ecx + edx + 4]
mov dword [edx], ebx
mov ebx, dword [esi + 4]
mov dword [edx + 4], ebx
mov ebx, dword [esi + 8]
mov dword [edx + 8], ebx
mov edx, dword [0x836bdc]
mov dword [ecx + edx + 0x10], ebp
mov edx, dword [0x836bd8]
mov ebx, dword [0x836bdc]
mov edx, dword [edx + eax*4]
mov dword [ecx + ebx], edx
mov ecx, dword [0x836bd8]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x1c]
inc ebp
add esi, 0xc
cmp ebp, eax
jb 0x58f7c2
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], 0
test eax, eax
jbe 0x59022b
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x88]
lea ebx, [eax + edx*2]
xor eax, eax
mov dword [esp + 0x1c], ebx
mov ax, word [ebx]
lea ecx, [eax + eax*2]
mov eax, dword [0x836c58]
test eax, eax
lea edi, [ebp + ecx*4]
je 0x58f9f0
mov esi, dword [0x836c64]
push edi
call fcn.00590430
mov edx, dword [0x836c58]
add esp, 4
dec esi
and eax, esi
mov eax, dword [edx + eax*4]
cmp eax, 0xffffffff
je 0x58f9f0
mov ecx, dword [0x836c5c]
lea esi, [eax + eax*4]
push edi
shl esi, 2
lea eax, [esi + ecx + 4]
push eax
call fcn.005903a0
add esp, 8
test al, al
jne 0x58f9e9
mov ecx, dword [0x836c5c]
mov eax, dword [esi + ecx]
cmp eax, 0xffffffff
jne 0x58f8fe
jmp 0x58f9f0
mov eax, dword [0x836c58]
test eax, eax
je 0x58f984
mov edi, dword [0x836c64]
push esi
call fcn.00590430
mov ecx, dword [0x836c58]
add esp, 4
dec edi
and eax, edi
mov edi, dword [ecx + eax*4]
cmp edi, 0xffffffff
je 0x58f984
mov eax, dword [0x836c5c]
lea edi, [edi + edi*4]
push esi
shl edi, 2
lea edx, [edi + eax + 4]
push edx
call fcn.005903a0
add esp, 8
test al, al
jne 0x58f87e
mov eax, dword [0x836c5c]
mov edi, dword [edi + eax]
cmp edi, 0xffffffff
jne 0x58f95b
mov ecx, 0x836c58
call fcn.00590a00
mov ebx, dword [0x836c64]
push esi
mov edi, eax
call fcn.00590430
mov edx, dword [0x836c5c]
add esp, 4
dec ebx
lea ecx, [edi + edi*4]
and eax, ebx
mov ebx, dword [esi]
shl ecx, 2
lea edx, [ecx + edx + 4]
mov dword [edx], ebx
mov ebx, dword [esi + 4]
mov dword [edx + 4], ebx
mov ebx, dword [esi + 8]
mov dword [edx + 8], ebx
mov edx, dword [0x836c5c]
mov dword [ecx + edx + 0x10], ebp
mov edx, dword [0x836c58]
mov ebx, dword [0x836c5c]
mov edx, dword [edx + eax*4]
mov dword [ecx + ebx], edx
mov ecx, dword [0x836c58]
jmp 0x58f87b
mov byte [esp + 0x14], 1
jmp 0x58f9f5
mov byte [esp + 0x14], 0
xor eax, eax
mov ax, word [ebx + 2]
lea ecx, [eax + eax*2]
mov eax, dword [0x836c58]
test eax, eax
lea edi, [ebp + ecx*4]
je 0x58fa57
mov esi, dword [0x836c64]
push edi
call fcn.00590430
mov edx, dword [0x836c58]
add esp, 4
dec esi
and eax, esi
mov eax, dword [edx + eax*4]
cmp eax, 0xffffffff
je 0x58fa57
mov ecx, dword [0x836c5c]
lea esi, [eax + eax*4]
push edi
shl esi, 2
lea eax, [esi + ecx + 4]
push eax
call fcn.005903a0
add esp, 8
test al, al
jne 0x58fac0
mov ecx, dword [0x836c5c]
mov eax, dword [esi + ecx]
cmp eax, 0xffffffff
jne 0x58fa31
mov byte [esp + 0x15], 0
xor eax, eax
mov ax, word [ebx + 4]
lea ecx, [eax + eax*2]
mov eax, dword [0x836c58]
test eax, eax
lea edi, [ebp + ecx*4]
je 0x58face
mov esi, dword [0x836c64]
push edi
call fcn.00590430
mov edx, dword [0x836c58]
add esp, 4
dec esi
and eax, esi
mov eax, dword [edx + eax*4]
cmp eax, 0xffffffff
je 0x58face
mov ecx, dword [0x836c5c]
lea esi, [eax + eax*4]
push edi
shl esi, 2
lea eax, [esi + ecx + 4]
push eax
call fcn.005903a0
add esp, 8
test al, al
jne 0x58fac7
mov ecx, dword [0x836c5c]
mov eax, dword [esi + ecx]
cmp eax, 0xffffffff
jne 0x58fa98
jmp 0x58face
mov byte [esp + 0x15], 1
jmp 0x58fa5c
mov byte [esp + 0x16], 1
jmp 0x58fad3
mov byte [esp + 0x16], 0
mov al, byte [esp + 0x14]
test al, al
je 0x58fc73
mov al, byte [esp + 0x15]
test al, al
je 0x58ff45
xor eax, eax
mov ax, word [ebx + 2]
lea ecx, [eax + eax*2]
xor eax, eax
mov ax, word [ebx]
lea ecx, [ebp + ecx*4]
lea edx, [eax + eax*2]
mov eax, dword [ebp + edx*4]
lea edx, [ebp + edx*4]
lea esi, [eax + eax*8]
lea eax, [eax + esi*4]
mov esi, dword [edx + 4]
add eax, esi
mov ebp, dword [edx + 8]
lea esi, [eax + eax*8]
lea esi, [eax + esi*4]
mov eax, dword [ecx]
add esi, ebp
mov ebp, dword [ecx + 8]
lea edi, [eax + eax*8]
lea eax, [eax + edi*4]
mov edi, dword [ecx + 4]
add eax, edi
lea edi, [eax + eax*8]
lea eax, [eax + edi*4]
add eax, ebp
cmp esi, eax
mov eax, dword [edx]
jge 0x58fb64
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x40], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
jmp 0x58fb8a
mov dword [esp + 0x48], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x4c], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x50], edx
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x40], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x44], eax
mov eax, dword [0x836c18]
test eax, eax
je 0x58fbe7
mov esi, dword [0x836c24]
lea ecx, [esp + 0x3c]
push ecx
call fcn.00590460
mov edx, dword [0x836c18]
add esp, 4
dec esi
and eax, esi
mov eax, dword [edx + eax*4]
cmp eax, 0xffffffff
je 0x58fbe7
mov ecx, dword [0x836c1c]
lea esi, [eax + eax*8]
lea eax, [esp + 0x3c]
shl esi, 2
push eax
lea ecx, [esi + ecx + 4]
call fcn.005903e0
test al, al
jne 0x58fd10
mov ecx, dword [0x836c1c]
mov eax, dword [esi + ecx]
cmp eax, 0xffffffff
jne 0x58fbbd
mov cx, word [ebx + 2]
mov ax, word [ebx]
mov word [esp + 0x96], cx
mov ecx, 0x836c18
mov word [esp + 0x94], ax
call fcn.00590bb0
mov esi, dword [0x836c24]
lea edx, [esp + 0x3c]
push edx
mov ebx, eax
call fcn.00590460
mov ecx, dword [0x836c1c]
add esp, 4
mov edi, eax
dec esi
and edi, esi
lea esi, [ebx + ebx*8]
shl esi, 2
lea eax, [esp + 0x3c]
push eax
lea ecx, [esi + ecx + 4]
call fcn.005909d0
mov eax, dword [0x836c1c]
mov edx, dword [esp + 0x94]
mov dword [esi + eax + 0x1c], edx
mov ecx, dword [0x836c1c]
mov edx, dword [esp + 0x18]
mov dword [esi + ecx + 0x20], edx
mov eax, dword [0x836c18]
mov edx, dword [0x836c1c]
mov ecx, dword [eax + edi*4]
mov dword [esi + edx], ecx
mov eax, dword [0x836c18]
mov dword [eax + edi*4], ebx
mov al, byte [esp + 0x15]
test al, al
je 0x58ff45
mov al, byte [esp + 0x16]
test al, al
je 0x590216
mov edi, dword [esp + 0x1c]
xor eax, eax
mov edx, dword [esp + 0x20]
mov ax, word [edi + 4]
lea ecx, [eax + eax*2]
xor eax, eax
mov ax, word [edi + 2]
lea ecx, [edx + ecx*4]
lea eax, [eax + eax*2]
lea edx, [edx + eax*4]
mov eax, dword [edx]
mov ebp, dword [edx + 8]
lea esi, [eax + eax*8]
lea eax, [eax + esi*4]
mov esi, dword [edx + 4]
add eax, esi
lea esi, [eax + eax*8]
lea esi, [eax + esi*4]
mov eax, dword [ecx]
add esi, ebp
mov ebp, dword [ecx + 8]
lea ebx, [eax + eax*8]
lea eax, [eax + ebx*4]
mov ebx, dword [ecx + 4]
add eax, ebx
lea ebx, [eax + eax*8]
lea eax, [eax + ebx*4]
add eax, ebp
cmp esi, eax
mov eax, dword [edx]
jge 0x58fe35
mov dword [esp + 0x58], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x5c], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x60], edx
mov eax, dword [ecx]
mov dword [esp + 0x64], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x6c], eax
jmp 0x58fe5b
mov eax, dword [0x836c18]
test eax, eax
je 0x58fd81
mov esi, dword [0x836c24]
lea ecx, [esp + 0x3c]
push ecx
call fcn.00590460
mov edx, dword [0x836c18]
add esp, 4
dec esi
and eax, esi
mov esi, dword [edx + eax*4]
cmp esi, 0xffffffff
je 0x58fd81
mov eax, dword [0x836c1c]
lea edi, [esi + esi*8]
lea ecx, [esp + 0x3c]
shl edi, 2
push ecx
lea ecx, [edi + eax + 4]
call fcn.005903e0
test al, al
jne 0x58fd69
mov eax, dword [0x836c1c]
mov esi, dword [edi + eax]
cmp esi, 0xffffffff
jne 0x58fd42
jmp 0x58fd81
mov eax, dword [0x836c1c]
lea edx, [esi + esi*8]
mov ecx, dword [eax + edx*4 + 0x1c]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + edx*4 + 0x20]
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x72]
mov ebx, dword [esp + 0x70]
xor edi, edi
mov di, word [eax + 2]
xor ebp, ebp
mov bp, word [eax]
and esi, 0xffff
mov eax, edi
and ebx, 0xffff
xor eax, esi
mov edx, ebp
sete cl
xor edx, esi
sete al
mov edx, edi
or cl, al
xor edx, ebx
sete al
mov edx, ebp
or cl, al
xor edx, ebx
sete al
or cl, al
jne 0x58fc73
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x84]
test eax, eax
jne 0x58fe02
push 0x50
call fcn.00672b70
add esp, 4
test eax, eax
je 0x58fdf6
mov edx, dword [esp + 0x10]
mov ecx, eax
push edx
call fcn.0058ee70
jmp 0x58fdf8
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x84], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push ebx
push esi
mov ecx, dword [eax + 0x84]
push edi
push edx
call fcn.0058f310
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x10]
push edi
push esi
push ebp
push ecx
mov ecx, dword [edx + 0x84]
call fcn.0058f310
jmp 0x58fc73
mov dword [esp + 0x64], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x68], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x6c], edx
mov eax, dword [ecx]
mov dword [esp + 0x58], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x5c], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
mov eax, dword [0x836c18]
test eax, eax
je 0x58feb8
mov esi, dword [0x836c24]
lea ecx, [esp + 0x58]
push ecx
call fcn.00590460
mov edx, dword [0x836c18]
add esp, 4
dec esi
and eax, esi
mov eax, dword [edx + eax*4]
cmp eax, 0xffffffff
je 0x58feb8
mov ecx, dword [0x836c1c]
lea esi, [eax + eax*8]
lea eax, [esp + 0x58]
shl esi, 2
push eax
lea ecx, [esi + ecx + 4]
call fcn.005903e0
test al, al
jne 0x58ffe1
mov ecx, dword [0x836c1c]
mov eax, dword [esi + ecx]
cmp eax, 0xffffffff
jne 0x58fe8e
mov cx, word [edi + 4]
mov ax, word [edi + 2]
mov word [esp + 0x9e], cx
mov ecx, 0x836c18
mov word [esp + 0x9c], ax
call fcn.00590bb0
mov esi, dword [0x836c24]
lea edx, [esp + 0x58]
push edx
mov ebx, eax
call fcn.00590460
mov ecx, dword [0x836c1c]
add esp, 4
mov edi, eax
dec esi
and edi, esi
lea esi, [ebx + ebx*8]
shl esi, 2
lea eax, [esp + 0x58]
push eax
lea ecx, [esi + ecx + 4]
call fcn.005909d0
mov eax, dword [0x836c1c]
mov edx, dword [esp + 0x9c]
mov dword [esi + eax + 0x1c], edx
mov ecx, dword [0x836c1c]
mov edx, dword [esp + 0x18]
mov dword [esi + ecx + 0x20], edx
mov eax, dword [0x836c18]
mov edx, dword [0x836c1c]
mov ecx, dword [eax + edi*4]
mov dword [esi + edx], ecx
mov eax, dword [0x836c18]
mov dword [eax + edi*4], ebx
mov al, byte [esp + 0x16]
test al, al
je 0x590216
mov al, byte [esp + 0x14]
test al, al
je 0x590216
mov edi, dword [esp + 0x1c]
xor eax, eax
mov edx, dword [esp + 0x20]
mov ax, word [edi]
lea ecx, [eax + eax*2]
xor eax, eax
mov ax, word [edi + 4]
lea ecx, [edx + ecx*4]
lea eax, [eax + eax*2]
lea edx, [edx + eax*4]
mov eax, dword [edx]
mov ebp, dword [edx + 8]
lea esi, [eax + eax*8]
lea eax, [eax + esi*4]
mov esi, dword [edx + 4]
add eax, esi
lea esi, [eax + eax*8]
lea esi, [eax + esi*4]
mov eax, dword [ecx]
add esi, ebp
mov ebp, dword [ecx + 8]
lea ebx, [eax + eax*8]
lea eax, [eax + ebx*4]
mov ebx, dword [ecx + 4]
add eax, ebx
lea ebx, [eax + eax*8]
lea eax, [eax + ebx*4]
add eax, ebp
cmp esi, eax
mov eax, dword [edx]
jge 0x590107
mov dword [esp + 0x24], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x28], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x38], eax
jmp 0x59012d
mov eax, dword [0x836c18]
test eax, eax
je 0x590052
mov esi, dword [0x836c24]
lea ecx, [esp + 0x58]
push ecx
call fcn.00590460
mov edx, dword [0x836c18]
add esp, 4
dec esi
and eax, esi
mov esi, dword [edx + eax*4]
cmp esi, 0xffffffff
je 0x590052
mov eax, dword [0x836c1c]
lea edi, [esi + esi*8]
lea ecx, [esp + 0x58]
shl edi, 2
push ecx
lea ecx, [edi + eax + 4]
call fcn.005903e0
test al, al
jne 0x59003a
mov eax, dword [0x836c1c]
mov esi, dword [edi + eax]
cmp esi, 0xffffffff
jne 0x590013
jmp 0x590052
mov eax, dword [0x836c1c]
lea edx, [esi + esi*8]
mov ecx, dword [eax + edx*4 + 0x1c]
mov dword [esp + 0x78], ecx
mov edx, dword [eax + edx*4 + 0x20]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x7a]
mov ebx, dword [esp + 0x78]
xor edi, edi
mov di, word [eax + 4]
xor ebp, ebp
mov bp, word [eax + 2]
and esi, 0xffff
mov eax, edi
and ebx, 0xffff
xor eax, esi
mov edx, ebp
sete cl
xor edx, esi
sete al
mov edx, edi
or cl, al
xor edx, ebx
sete al
mov edx, ebp
or cl, al
xor edx, ebx
sete al
or cl, al
jne 0x58ff45
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x84]
test eax, eax
jne 0x5900d4
push 0x50
call fcn.00672b70
add esp, 4
test eax, eax
je 0x5900c8
mov edx, dword [esp + 0x10]
mov ecx, eax
push edx
call fcn.0058ee70
jmp 0x5900ca
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x84], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push ebx
push esi
mov ecx, dword [eax + 0x84]
push edi
push edx
call fcn.0058f310
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x10]
push edi
push esi
push ebp
push ecx
mov ecx, dword [edx + 0x84]
call fcn.0058f310
jmp 0x58ff45
mov dword [esp + 0x30], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x34], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x38], edx
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [0x836c18]
test eax, eax
je 0x59018a
mov esi, dword [0x836c24]
lea ecx, [esp + 0x24]
push ecx
call fcn.00590460
mov edx, dword [0x836c18]
add esp, 4
dec esi
and eax, esi
mov eax, dword [edx + eax*4]
cmp eax, 0xffffffff
je 0x59018a
mov ecx, dword [0x836c1c]
lea esi, [eax + eax*8]
lea eax, [esp + 0x24]
shl esi, 2
push eax
lea ecx, [esi + ecx + 4]
call fcn.005903e0
test al, al
jne 0x590267
mov ecx, dword [0x836c1c]
mov eax, dword [esi + ecx]
cmp eax, 0xffffffff
jne 0x590160
mov cx, word [edi]
mov ax, word [edi + 4]
mov word [esp + 0x8e], cx
mov ecx, 0x836c18
mov word [esp + 0x8c], ax
call fcn.00590bb0
mov esi, dword [0x836c24]
lea edx, [esp + 0x24]
push edx
mov ebx, eax
call fcn.00590460
mov ecx, dword [0x836c1c]
add esp, 4
mov edi, eax
dec esi
and edi, esi
lea esi, [ebx + ebx*8]
shl esi, 2
lea eax, [esp + 0x24]
push eax
lea ecx, [ecx + esi + 4]
call fcn.005909d0
mov eax, dword [0x836c1c]
mov edx, dword [esp + 0x8c]
mov dword [eax + esi + 0x1c], edx
mov ecx, dword [0x836c1c]
mov edx, dword [esp + 0x18]
mov dword [ecx + esi + 0x20], edx
mov eax, dword [0x836c18]
mov edx, dword [0x836c1c]
mov ecx, dword [eax + edi*4]
mov dword [edx + esi], ecx
mov eax, dword [0x836c18]
mov dword [eax + edi*4], ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x58f8a2
mov ecx, 0x836bd8
call fcn.00590870
mov ecx, 0x836c58
call fcn.00590870
mov ecx, 0x836c18
call fcn.005908d0
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov ecx, dword [ecx + 0x84]
pop ebx
test ecx, ecx
je 0x590260
call fcn.0058f480
add esp, 0x94
ret
mov eax, dword [0x836c18]
test eax, eax
je 0x5902de
mov esi, dword [0x836c24]
lea ecx, [esp + 0x24]
push ecx
call fcn.00590460
mov edx, dword [0x836c18]
add esp, 4
dec esi
and eax, esi
mov esi, dword [edx + eax*4]
cmp esi, 0xffffffff
je 0x5902de
mov eax, dword [0x836c1c]
lea edi, [esi + esi*8]
lea ecx, [esp + 0x24]
shl edi, 2
push ecx
lea ecx, [edi + eax + 4]
call fcn.005903e0
test al, al
jne 0x5902c0
mov eax, dword [0x836c1c]
mov esi, dword [edi + eax]
cmp esi, 0xffffffff
jne 0x590299
jmp 0x5902de
mov eax, dword [0x836c1c]
lea edx, [esi + esi*8]
mov ecx, dword [eax + edx*4 + 0x1c]
mov dword [esp + 0x80], ecx
mov edx, dword [eax + edx*4 + 0x20]
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x82]
mov ebx, dword [esp + 0x80]
xor edi, edi
mov di, word [eax]
xor ebp, ebp
mov bp, word [eax + 4]
and esi, 0xffff
mov eax, edi
and ebx, 0xffff
xor eax, esi
mov edx, ebp
sete cl
xor edx, esi
sete al
mov edx, edi
or cl, al
xor edx, ebx
sete al
mov edx, ebp
or cl, al
xor edx, ebx
sete al
or cl, al
jne 0x590216
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x84]
test eax, eax
jne 0x590365
push 0x50
call fcn.00672b70
add esp, 4
test eax, eax
je 0x590359
mov edx, dword [esp + 0x10]
mov ecx, eax
push edx
call fcn.0058ee70
jmp 0x59035b
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x84], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push ebx
push esi
mov ecx, dword [eax + 0x84]
push edi
push edx
call fcn.0058f310
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x10]
push edi
push esi
push ebp
push ecx
mov ecx, dword [edx + 0x84]
call fcn.0058f310
jmp 0x590216