Function at 0x587230
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x90
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x98]
push ebx
push ebp
mov ebp, dword [esp + 0xb4]
push esi
mov esi, dword [esp + 0xa0]
push edi
mov edi, dword [esp + 0xb4]
push esi
mov dword [esp + 0x14], eax
call fcn.0058ac70
mov bl, al
add esp, 4
test bl, bl
jne 0x587294
cmp byte [esi + 0x61], al
je 0x587294
mov ecx, dword [esp + 0x10]
push 0
push ecx
push esi
call fcn.00593d80
add esp, 0xc
test eax, eax
jne 0x5883e0
xor edx, edx
cmp edi, edx
jne 0x5872a9
push edx
push edx
push edx
push edx
push edx
push 0x4269
jmp 0x5883d3
cmp ebp, edx
je 0x5872b0
mov dword [ebp], edx
movzx eax, word [esp + 0xac]
dec eax
cmp eax, 0x66
ja case.0x5872c9.2
movzx eax, byte [eax + 0x5884fc]
jmp dword [eax*4 + 0x5883fc]
mov esi, dword [esi + 0x2f]
cmp esi, edx
jne 0x588345
mov eax, 0x64
jmp 0x5883e0
cmp dword [esp + 0x10], edx
je case.0x587b22.5
mov ecx, dword [esi]
cmp ebp, edx
jmp 0x5883b5
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
mov edx, dword [eax]
add esi, 0x3f
push esi
push edx
call fcn.00407710
add esp, 8
test eax, eax
je 0x587323
push 0
push 0
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x28]
push eax
jmp 0x5883d8
mov ecx, dword [esi]
jmp 0x5883b3
mov esi, dword [esi + 4]
cmp esi, edx
je case.0x587b22.5
movzx eax, word [esi + 6]
cmp ax, 0x29
jl 0x587341
cmp ax, 0x2a
jle 0x58734b
mov ecx, 0x8d
cmp ax, cx
jne case.0x587b22.5
mov ax, word [esi + 4]
mov word [edi], ax
cmp ebp, edx
je 0x5883c0
mov dword [ebp], 2
xor eax, eax
jmp 0x5883e0
mov esi, dword [esi + 4]
cmp esi, edx
je case.0x587b22.5
mov cx, word [esi + 6]
mov word [edi], cx
cmp ebp, edx
je 0x5883c0
mov dword [ebp], 2
xor eax, eax
jmp 0x5883e0
mov esi, dword [esi + 4]
cmp esi, edx
je case.0x587b22.5
cmp word [esi + 8], dx
setne al
mov byte [edi], al
cmp ebp, edx
je 0x5883c0
mov dword [ebp], 1
xor eax, eax
jmp 0x5883e0
test bl, bl
jne case.0x587b22.5
mov esi, dword [esi + 0x2f]
cmp dword [esi + 0x57], 0xffffffff
je case.0x587b22.5
movzx eax, word [esi + 0x39]
movsx ecx, ax
cmp dword [esp + 0xb0], ecx
jb 0x58734f
mov eax, 0x64
jmp 0x5883e0
mov esi, dword [esi + 0x2f]
mov eax, dword [esi + 0x21]
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x77], dl
je 0x587401
movzx edx, word [ecx + 0x74]
jmp 0x587406
mov edx, 1
movzx eax, word [eax + 0x84]
mov dword [esp + 0x14], edi
mov byte [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov byte [esp + 0x20], 0
test bl, bl
jne case.0x587b22.5
xor ecx, ecx
cmp dword [esi + 0x57], ecx
sete cl
cmp ecx, 0xffffffff
je case.0x587b22.5
movsx edi, word [esi + 0x39]
mov ecx, dword [esp + 0xb0]
cmp ecx, edi
jb 0x58745f
push 0
push 0
push 0
push 0
push 0
push 0x426a
jmp 0x5883d3
cmp dx, 2
je 0x58746b
cmp dx, 3
jne 0x587488
cmp dx, ax
je 0x5874d0
cmp ax, 3
je 0x5874d0
cmp ax, 2
jne 0x587488
mov edi, dword [esi + 0x21]
cmp byte [edi + 0x86], 0
jne 0x5874d0
cmp dx, 5
je 0x58749a
cmp dx, 6
je 0x58749a
cmp dx, 7
jne 0x58749f
cmp dx, ax
je 0x5874d0
mov eax, dword [esi + 0x21]
imul ecx, ecx, 0x85
mov edx, dword [esp + 0x10]
push edx
mov edx, dword [eax + 8]
push edx
push eax
mov eax, dword [esi + 0x3f]
lea ecx, [eax + ecx + 1]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.005954e0
add esp, 0x14
test eax, eax
je 0x5874e1
jmp 0x5883e0
mov eax, dword [esi + 0x3f]
imul ecx, ecx, 0x85
lea ecx, [eax + ecx + 1]
mov dword [esp + 0x1c], ecx
mov edx, dword [esi + 0x21]
mov eax, dword [edx + 8]
movzx ecx, byte [eax + 0x77]
mov edx, dword [esp + 0xb8]
push ecx
push ebp
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
push edx
call fcn.00594880
mov esi, eax
mov eax, dword [esp + 0x34]
add esp, 0x18
test esi, esi
je 0x587532
test eax, eax
je 0x58752b
cmp byte [esp + 0x20], 0
je 0x58752b
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, esi
jmp 0x5883e0
test eax, eax
je 0x5883c0
cmp byte [esp + 0x20], 0
je 0x5883c0
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
xor eax, eax
jmp 0x5883e0
test bl, bl
jne case.0x587b22.5
mov esi, dword [esi + 0x2f]
cmp dword [esi + 0x57], 0xffffffff
je case.0x587b22.5
movsx ecx, word [esi + 0x39]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae 0x58744b
mov ecx, dword [esi + 0x3f]
imul eax, eax, 0x85
mov al, byte [eax + ecx]
jmp 0x5873a2
test bl, bl
jne case.0x587b22.5
mov eax, dword [esi + 0x2f]
cmp dword [eax + 0x57], 0xffffffff
je case.0x587b22.5
movsx ecx, word [eax + 0x39]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae 0x58744b
mov ecx, dword [esi + 0x2f]
imul eax, eax, 0x85
mov edx, dword [ecx + 0x3f]
add eax, edx
movzx edx, word [eax + 0x81]
lea ecx, [eax + 0x83]
push ecx
push edx
call fcn.0058b310
add esp, 8
mov dword [edi], eax
test ebp, ebp
jmp 0x5883b7
mov esi, dword [esi + 0x2f]
mov eax, dword [esi + 0x21]
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x77], dl
je 0x5875fd
movzx ecx, word [ecx + 0x74]
mov dword [esp + 0x2c], ecx
jmp 0x587605
mov dword [esp + 0x2c], 1
movzx eax, word [eax + 0x84]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], dl
test bl, bl
jne case.0x587b22.5
xor ecx, ecx
cmp dword [esi + 0x57], edx
sete cl
cmp ecx, 0xffffffff
je case.0x587b22.5
movsx edx, word [esi + 0x39]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jb 0x587661
mov eax, dword [esp + 0x10]
push 0
push 0
push 0
push 0
push 0
push 0x426a
push eax
jmp 0x5883d8
mov ecx, dword [esi + 0x3f]
imul eax, eax, 0x85
movzx edx, word [eax + ecx + 0x81]
mov word [esp + 0x30], dx
mov ecx, dword [esi + 0x3f]
movzx edx, word [eax + ecx + 0x83]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x34]
push 1
push ecx
mov word [esp + 0x3e], dx
call fcn.00575800
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp ax, 2
je 0x5876ab
cmp ax, 3
jne 0x58771b
mov ecx, dword [esp + 0x1c]
cmp ax, cx
je 0x5876cc
cmp cx, 3
je 0x5876cc
cmp cx, 2
jne 0x58771f
mov edx, dword [esi + 0x21]
cmp byte [edx + 0x86], 0
je 0x58771f
lea edx, [esp + 0x38]
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x21]
mov ecx, dword [eax + 8]
movzx edx, byte [ecx + 0x77]
mov eax, dword [esp + 0xb8]
push edx
push ebp
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x24]
push edx
push eax
call fcn.00594880
mov esi, eax
mov eax, dword [esp + 0x2c]
add esp, 0x18
test esi, esi
je 0x587762
test eax, eax
je 0x58752b
cmp byte [esp + 0x18], 0
jmp 0x58751f
mov ecx, dword [esp + 0x1c]
cmp ax, 5
je 0x587731
cmp ax, 6
je 0x587731
cmp ax, 7
jne 0x587736
cmp ax, cx
je 0x5876cc
mov eax, dword [esi + 0x21]
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + 8]
push ecx
push edx
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.005954e0
add esp, 0x14
test eax, eax
je 0x5876d4
jmp 0x5883e0
test eax, eax
je 0x5883c0
cmp byte [esp + 0x18], 0
jmp 0x58753f
test bl, bl
jne case.0x587b22.5
mov eax, dword [esi + 0x2f]
cmp dword [eax + 0x57], 0xffffffff
je case.0x587b22.5
movsx ecx, word [eax + 0x39]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae 0x58744b
mov ecx, dword [esi + 0x2f]
imul eax, eax, 0x85
mov edx, dword [ecx + 0x4f]
add eax, edx
movzx edx, word [eax + 0x81]
lea ecx, [eax + 0x83]
push ecx
push edx
call fcn.0058b410
add esp, 8
mov word [edi], ax
test ebp, ebp
je 0x5883c0
mov dword [ebp], 2
xor eax, eax
jmp 0x5883e0
test bl, bl
jne case.0x587b22.5
mov esi, dword [esi + 0x2f]
cmp dword [esi + 0x57], 0xffffffff
je case.0x587b22.5
movsx ecx, word [esi + 0x39]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae 0x58744b
mov ecx, dword [esi + 0x4f]
imul eax, eax, 0x85
add eax, ecx
movsx ecx, word [eax + 0x81]
add ecx, 0xfffffffd
cmp ecx, 0x1b
ja case.0x587b22.5
movzx ecx, byte [ecx + 0x588574]
jmp dword [ecx*4 + 0x588564]
movsx ax, byte [eax + 0x84]
jmp 0x58734f
movsx cx, byte [eax + 0x83]
mov word [edi], cx
jmp 0x587352
mov ax, word [eax + 0x83]
jmp 0x58734f
test bl, bl
jne case.0x587b22.5
mov esi, dword [esi + 0x2f]
cmp dword [esi + 0x57], 0xffffffff
je case.0x587b22.5
movsx ecx, word [esi + 0x39]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae 0x58744b
mov ecx, dword [esi + 0x4f]
imul eax, eax, 0x85
add eax, ecx
movsx ecx, word [eax + 0x81]
cmp ecx, 3
je 0x5878af
add ecx, 0xfffffff8
cmp ecx, 1
ja case.0x587b22.5
movsx ax, byte [eax + 0x83]
jmp 0x58734f
movsx cx, byte [eax + 0x84]
mov word [edi], cx
jmp 0x587352
mov esi, dword [esi + 4]
cmp esi, edx
je case.0x587b22.5
mov ax, word [esi + 0xa]
jmp 0x58734f
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
movsx ecx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x10]
cmp eax, ecx
jb 0x587905
push 0
push 0
push 0
push 0
push 0
push 0x426a
jmp 0x5883d7
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 1]
lea ecx, [eax + 3]
push ecx
push edx
call fcn.0058b310
add esp, 8
mov dword [edi], eax
test ebp, ebp
jmp 0x5883b7
mov eax, dword [esi + 0x2f]
mov eax, dword [eax + 0x21]
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x77], dl
je 0x58794f
movzx ebx, word [ecx + 0x74]
jmp 0x587954
mov ebx, 1
movzx ecx, word [eax + 0x84]
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], dl
cmp eax, edx
je case.0x587b22.5
movsx edx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x587648
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push ecx
push eax
push edi
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x2c]
mov dx, word [eax + 1]
lea ecx, [esp + 0x38]
push ecx
mov word [esp + 0x34], dx
mov ax, word [eax + 3]
lea edx, [esp + 0x34]
push 1
push edx
mov word [esp + 0x3e], ax
call fcn.00575800
add esp, 0xc
cmp bx, 2
je 0x5879df
cmp bx, 3
jne 0x587a32
mov eax, dword [esp + 0x1c]
cmp bx, ax
je 0x587a03
cmp ax, 3
je 0x587a03
cmp ax, 2
jne 0x587a36
mov ecx, dword [esi + 0x2f]
mov edx, dword [ecx + 0x21]
cmp byte [edx + 0x86], 0
je 0x587a36
lea ecx, [esp + 0x38]
mov dword [esp + 0x14], ecx
mov edx, dword [esi + 0x2f]
mov eax, dword [edx + 0x21]
mov ecx, dword [eax + 8]
movzx edx, byte [ecx + 0x77]
mov eax, dword [esp + 0xb8]
push edx
push ebp
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x24]
push edx
push edi
jmp 0x5876f7
mov eax, dword [esp + 0x1c]
cmp bx, 5
je 0x587a48
cmp bx, 6
je 0x587a48
cmp bx, 7
jne 0x587a4d
cmp bx, ax
je 0x587a03
mov eax, dword [esi + 0x2f]
mov eax, dword [eax + 0x21]
lea edx, [esp + 0x38]
mov ecx, dword [eax + 8]
push edi
push ecx
push eax
push edx
lea eax, [esp + 0x24]
push eax
call fcn.005954e0
add esp, 0x14
test eax, eax
je 0x587a0b
jmp 0x5883e0
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
movsx ecx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x10]
cmp eax, ecx
jae 0x5878f1
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 1]
lea ecx, [eax + 3]
push ecx
push edx
call fcn.0058b410
add esp, 8
mov word [edi], ax
test ebp, ebp
jmp 0x587354
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
movsx ecx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x10]
cmp eax, ecx
jae 0x5878f1
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
movsx ecx, word [eax + 1]
add ecx, 0xfffffffd
cmp ecx, 0x1b
ja case.0x587b22.5
movzx ecx, byte [ecx + 0x5885a0]
jmp dword [ecx*4 + 0x588590]
movsx dx, byte [eax + 4]
mov word [edi], dx
test ebp, ebp
jmp 0x587354
mov cx, word [eax + 3]
mov word [edi], cx
test ebp, ebp
jmp 0x587354
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
movsx edx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x587648
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
movsx ecx, word [eax + 1]
cmp ecx, 3
je 0x587ba8
add ecx, 0xfffffff8
cmp ecx, 1
ja case.0x587b22.5
movsx ax, byte [eax + 3]
mov word [edi], ax
test ebp, ebp
jmp 0x587354
movsx cx, byte [eax + 4]
mov word [edi], cx
test ebp, ebp
jmp 0x587354
mov eax, dword [esi + 0x2f]
mov eax, dword [eax + 0x21]
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x77], dl
je 0x587bcf
movzx ecx, word [ecx + 0x74]
mov dword [esp + 0x1c], ecx
jmp 0x587bd7
mov dword [esp + 0x1c], 1
movzx ebx, word [eax + 0x84]
mov eax, dword [esi + 4]
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], dl
cmp eax, edx
je case.0x587b22.5
movsx edx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x587648
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push ecx
push eax
push edi
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
cmp ax, 2
je 0x587c38
cmp ax, 3
jne 0x587c58
cmp ax, bx
je 0x587c81
cmp bx, 3
je 0x587c81
cmp bx, 2
jne 0x587c58
mov edx, dword [esi + 0x2f]
mov ecx, dword [edx + 0x21]
cmp byte [ecx + 0x86], 0
jne 0x587c81
cmp ax, 5
je 0x587c6a
cmp ax, 6
je 0x587c6a
cmp ax, 7
jne 0x587c6f
cmp ax, bx
je 0x587c81
mov edx, dword [esi + 0x2f]
mov eax, dword [edx + 0x21]
mov edx, dword [esp + 0x2c]
add edx, 5
jmp 0x587a57
mov ecx, dword [esp + 0x2c]
add ecx, 5
jmp 0x587a07
mov eax, dword [esi + 0x2f]
mov eax, dword [eax + 0x21]
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x77], dl
je 0x587ca5
movzx ecx, word [ecx + 0x74]
mov dword [esp + 0x1c], ecx
jmp 0x587cad
mov dword [esp + 0x1c], 1
movzx ebx, word [eax + 0x84]
mov eax, dword [esi + 4]
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], dl
cmp eax, edx
je case.0x587b22.5
movsx edx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x587648
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push ecx
push eax
push edi
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
cmp ax, 2
je 0x587d0e
cmp ax, 3
jne 0x587d2e
cmp ax, bx
je 0x587d5a
cmp bx, 3
je 0x587d5a
cmp bx, 2
jne 0x587d2e
mov edx, dword [esi + 0x2f]
mov ecx, dword [edx + 0x21]
cmp byte [ecx + 0x86], 0
jne 0x587d5a
cmp ax, 5
je 0x587d40
cmp ax, 6
je 0x587d40
cmp ax, 7
jne 0x587d45
cmp ax, bx
je 0x587d5a
mov edx, dword [esi + 0x2f]
mov eax, dword [edx + 0x21]
mov edx, dword [esp + 0x2c]
add edx, 0x85
jmp 0x587a57
mov ecx, dword [esp + 0x2c]
add ecx, 0x85
jmp 0x587a07
mov eax, dword [esi + 0x2f]
mov eax, dword [eax + 0x21]
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x77], dl
je 0x587d81
movzx ecx, word [ecx + 0x74]
mov dword [esp + 0x1c], ecx
jmp 0x587d89
mov dword [esp + 0x1c], 1
movzx ebx, word [eax + 0x84]
mov eax, dword [esi + 4]
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], dl
cmp eax, edx
je case.0x587b22.5
movsx edx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x587648
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push ecx
push eax
push edi
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
cmp ax, 2
je 0x587dea
cmp ax, 3
jne 0x587e0a
cmp ax, bx
je 0x587e36
cmp bx, 3
je 0x587e36
cmp bx, 2
jne 0x587e0a
mov edx, dword [esi + 0x2f]
mov ecx, dword [edx + 0x21]
cmp byte [ecx + 0x86], 0
jne 0x587e36
cmp ax, 5
je 0x587e1c
cmp ax, 6
je 0x587e1c
cmp ax, 7
jne 0x587e21
cmp ax, bx
je 0x587e36
mov edx, dword [esi + 0x2f]
mov eax, dword [edx + 0x21]
mov edx, dword [esp + 0x2c]
add edx, 0x105
jmp 0x587a57
mov ecx, dword [esp + 0x2c]
add ecx, 0x105
jmp 0x587a07
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
movsx ecx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x10]
cmp eax, ecx
jae 0x5878f1
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
mov cl, byte [eax]
mov byte [edi], cl
test ebp, ebp
jmp 0x5873a6
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov al, byte [ecx + eax + 0x2f]
jmp 0x5873a2
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 5]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x19]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov ax, word [ecx + eax + 0x2d]
jmp 0x58734f
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x21]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x15]
mov dword [edi], eax
jmp 0x587352
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x29]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x11]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x53]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x10]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x25]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov al, byte [ecx + eax + 0x2f]
jmp 0x5873a2
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 5]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x19]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x21]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov ax, word [ecx + eax + 0x2d]
jmp 0x58734f
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x15]
mov dword [edi], eax
jmp 0x587352
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x29]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x11]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
movzx ecx, word [esi + 0x55]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
jae case.0x587b22.5
mov ecx, dword [esi + 0x14]
imul eax, eax, 0x32
mov eax, dword [ecx + eax + 0x25]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov cl, byte [esi + 0x5b]
mov byte [edi], cl
jmp 0x5873a4
mov al, byte [esi + 0x5d]
jmp 0x5873a2
mov cl, byte [esi + 0x60]
mov byte [edi], cl
jmp 0x5873a4
mov al, byte [esi + 0x5e]
jmp 0x5873a2
mov cl, byte [esi + 0x5f]
mov byte [edi], cl
jmp 0x5873a4
mov al, byte [esi + 0x5c]
jmp 0x5873a2
mov esi, dword [esi + 0x47]
cmp esi, edx
jne 0x588345
mov eax, 0x64
jmp 0x5883e0
mov esi, dword [esi + 0x4b]
cmp esi, 0xffffffff
jne 0x588345
lea eax, [esi + 0x65]
jmp 0x5883e0
mov ecx, dword [esi + 8]
cmp ecx, edx
je case.0x587b22.5
movzx eax, word [ecx]
cmp ax, 0x29
jl 0x5881a5
cmp ax, 0x2a
jle case.0x587b22.5
mov ebx, 0x8d
cmp ax, bx
je case.0x587b22.5
mov esi, dword [esi + 0x43]
mov eax, dword [esp + 0xb0]
cmp eax, esi
jb 0x5881da
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
push 0
push 0
push 0x426a
push ecx
jmp 0x5883d8
cmp esi, 1
jne 0x5881f2
imul eax, eax, 0x7fa4
mov eax, dword [eax + ecx + 8]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov eax, dword [ecx + eax*8 + 4]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov ecx, dword [esi + 8]
cmp ecx, edx
je case.0x587b22.5
movzx eax, word [ecx]
cmp ax, 0x29
jl 0x58821d
cmp ax, 0x2a
jle case.0x587b22.5
mov ebx, 0x8d
cmp ax, bx
je case.0x587b22.5
mov esi, dword [esi + 0x43]
mov eax, dword [esp + 0xb0]
cmp eax, esi
jae 0x58744b
cmp esi, 1
jne 0x588255
imul eax, eax, 0x7fa4
mov eax, dword [eax + ecx + 4]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov eax, dword [ecx + eax*8]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov eax, dword [esi + 0x43]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
test bl, bl
jne case.0x587b22.5
mov ecx, dword [esi + 0x2f]
mov edx, dword [ecx + 0x21]
mov eax, dword [edx + 8]
movzx ecx, byte [eax + 0x77]
mov edx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x14]
push ebp
push edx
lea eax, [esp + 0x30]
push eax
add esi, 0x18
push esi
push ecx
call fcn.00594880
add esp, 0x18
test eax, eax
je 0x5883c0
jmp 0x5883e0
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
test bl, bl
jne case.0x587b22.5
mov edx, dword [esi + 0x2f]
mov eax, dword [edx + 0x21]
mov ecx, dword [eax + 8]
movzx edx, byte [ecx + 0x77]
mov eax, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x14]
push ebp
push eax
lea ecx, [esp + 0x30]
push ecx
add esi, 0x1d
push esi
push edx
jmp 0x5882a2
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], dl
test bl, bl
jne case.0x587b22.5
mov eax, dword [esi + 0x2f]
mov ecx, dword [eax + 0x21]
mov edx, dword [ecx + 8]
movzx eax, byte [edx + 0x77]
mov ecx, dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0x14]
push ebp
push ecx
lea edx, [esp + 0x30]
push edx
add esi, 0x22
push esi
push eax
jmp 0x5882a2
mov cl, byte [esi + 0x62]
mov byte [edi], cl
jmp 0x5873a4
test bl, bl
jne case.0x587b22.5
mov esi, dword [esi + 0x33]
cmp esi, edx
je case.0x587b22.5
mov dword [edi], esi
cmp ebp, edx
jmp 0x5883b7
mov eax, dword [esi + 0x4f]
mov dword [edi], eax
cmp ebp, edx
jmp 0x5883b7
mov cl, byte [esi + 0x63]
mov byte [edi], cl
jmp 0x5873a4
mov ax, word [esi + 0x53]
jmp 0x58734f
mov cx, word [esi + 0x55]
mov word [edi], cx
jmp 0x587352
mov eax, dword [esi + 4]
cmp eax, edx
je case.0x587b22.5
movsx edx, word [eax + 0xa]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x587648
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push esi
call fcn.00593080
add esp, 0x10
test eax, eax
jne 0x5883e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x185]
test ebp, ebp
mov dword [edi], ecx
je 0x5883c0
mov dword [ebp], 4
xor eax, eax
jmp 0x5883e0
push 0
push 0
push 0
push 0
push 0
push 0x426c
mov edx, dword [esp + 0x28]
push edx
call fcn.00594510
add esp, 0x1c
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586584
add esp, 0x90
ret