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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x88
push ebx
mov ebx, dword [esp + 0x9c]
push ebp
push esi
xor ebp, ebp
cmp eax, ebp
push edi
mov edi, dword [esp + 0xa4]
mov esi, ecx
jne 0x5d5eb7
cmp edi, ebp
je 0x5d5ea7
mov ecx, edi
call fcn.005d20c0
test al, al
je 0x5d5ea7
cmp ebx, ebp
jne 0x5d5ecb
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x88
ret 0x1c
cmp edi, ebp
jne 0x5d5ecb
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x88
ret 0x1c
mov eax, dword [esp + 0xac]
push eax
mov ecx, esi
call fcn.005d5aa0
mov ebx, dword [ebx + 0x28]
mov ecx, dword [esp + 0x9c]
xor edx, edx
xor eax, eax
cmp edi, ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x44], eax
jne 0x5d5f14
mov edi, dword [ecx + 0xbc]
mov edi, dword [edi + 0x38]
cmp ecx, ebp
je 0x5d5f40
mov ebp, dword [ecx + 0xbc]
xor ecx, ecx
mov cx, word [ebp + 0x32]
and ecx, 0xf000
cmp ecx, 0x4000
je 0x5d5f3e
xor ecx, ecx
mov cl, byte [ebp + 0x30]
and ecx, 0x3f
xor ebp, ebp
jmp 0x5d5f45
xor ebp, ebp
movzx cx, byte [edi + 3]
cmp cx, 8
jbe 0x5d5f50
mov ecx, 8
cmp cx, bp
mov dword [esi + 0x100], ebp
je 0x5d5fae
mov eax, dword [ebx + 0x2c]
mov ebp, dword [eax + 4]
mov edi, dword [eax]
mov edx, dword [eax + 8]
mov dword [esp + 0x4c], ebp
mov ebp, dword [eax + 0x14]
movzx ecx, cx
mov dword [esp + 0x60], ebp
mov ebp, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
dec ecx
test edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x44], eax
mov dword [esi + 0x100], ecx
je 0x5d5fac
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x5d5fac
mov ecx, 1
mov dword [esp + 0x74], ecx
xor ebp, ebp
jmp 0x5d5fb7
xor ebp, ebp
mov dword [esp + 0x74], ebp
mov ecx, 1
cmp edx, ebp
je 0x5d5fc4
cmp dword [edx + 4], ebp
mov dword [esp + 0x68], ecx
jne 0x5d5fc8
mov dword [esp + 0x68], ebp
mov edx, dword [esp + 0x4c]
cmp edx, ebp
je 0x5d5fd9
cmp dword [edx + 4], ebp
je 0x5d5fd9
mov edx, ecx
jmp 0x5d5fdb
xor edx, edx
mov edi, dword [esp + 0x60]
cmp edi, ebp
mov dword [esp + 0x1c], edx
je 0x5d5ff3
cmp dword [edi + 4], ebp
mov dword [esp + 0x88], ecx
jne 0x5d5ffa
mov dword [esp + 0x88], ebp
mov edi, dword [ebx + 0x40]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x70]
cmp edi, ebp
je 0x5d6015
cmp dword [edi + 4], ebp
mov dword [esp + 0x3c], ecx
jne 0x5d6019
mov dword [esp + 0x3c], ebp
cmp eax, ebp
je 0x5d6026
cmp dword [eax + 4], ebp
mov dword [esp + 0x48], ecx
jne 0x5d602a
mov dword [esp + 0x48], ebp
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0x94]
mov edi, dword [esi + 0x7c]
mov ebp, dword [esi + 0x64]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0xc4]
test eax, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 8]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0xdc]
seta byte [esp + 0x2e]
mov dword [esp + 0x94], ecx
mov ecx, dword [ebx + 0x20]
mov bl, byte [eax + 0x20]
mov dword [esp + 0x7c], eax
movzx eax, word [eax + 0x20]
test ecx, ecx
setne byte [esp + 0x13]
shr eax, 9
and bl, 1
and al, 1
test bl, bl
mov dword [esp + 0x6c], edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x84], ecx
mov byte [esp + 0x23], bl
mov byte [esp + 0x2f], al
mov byte [esp + 0x30], 0
mov byte [esp + 0x38], 0
jne 0x5d60b5
test al, al
je 0x5d60d4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5d60c7
cmp ecx, 1
mov byte [esp + 0x30], 1
jne 0x5d60cc
mov byte [esp + 0x30], 0
mov cl, byte [esp + 0x13]
mov byte [esp + 0x38], cl
mov cl, byte [esp + 0x13]
lea eax, [edi + ebp*2]
add eax, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
add eax, edx
mov dword [esp + 0x28], eax
mov byte [esp + 0x12], cl
mov dword [esp + 0x64], ebp
mov dword [esp + 0x5c], edi
mov dl, byte [esp + 0x12]
test dl, dl
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
jne 0x5d6116
lea edi, [eax + ecx]
test edi, edi
jbe 0x5d65b6
test dl, dl
mov ebp, dword [esp + 0x64]
je 0x5d612c
test ebp, ebp
jne 0x5d612b
cmp ecx, 1
ja 0x5d612b
test eax, eax
jne 0x5d612c
inc eax
mov edx, dword [esi + 0x38]
test edx, edx
jbe 0x5d614c
test ecx, ecx
je 0x5d6155
mov dl, byte [esp + 0x30]
xor al, al
test dl, dl
mov byte [esp + 0x1b], al
je 0x5d6163
mov byte [esp + 0x54], 1
jmp 0x5d616c
cmp dword [esp + 0x58], 1
ja 0x5d6137
add eax, ecx
cmp eax, dword [0x719c68]
ja 0x5d6137
mov al, 1
mov byte [esp + 0x1b], al
test al, al
mov byte [esp + 0x54], 0
jne 0x5d6179
mov al, byte [esp + 0x38]
test al, al
mov byte [esp + 0x50], 1
jne 0x5d617e
mov byte [esp + 0x50], 0
test ecx, ecx
je 0x5d61b5
mov al, byte [esp + 0x23]
mov edx, dword [esp + 0x50]
push edx
test al, al
mov eax, dword [esp + 0x58]
push eax
push 2
je 0x5d61b1
mov ecx, dword [esp + 0x88]
mov eax, dword [esi + 0x18]
xor edx, edx
mov dl, byte [ecx + 0x20]
shr edx, 1
and edx, 0xf
mov ecx, dword [eax + edx*4 + 0x24]
push ecx
jmp 0x5d61c3
push 2
jmp 0x5d61c3
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
push ecx
push edx
push 3
push 1
mov ecx, esi
call fcn.005d5940
xor bl, bl
test ebp, ebp
je 0x5d6246
mov eax, dword [esi + 0x104]
test eax, eax
jbe 0x5d6246
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d6246
mov eax, dword [esp + 0x58]
mov ecx, dword [esi + 0x5c]
sub eax, ebp
mov edi, dword [ecx + eax*4]
push edi
mov ecx, esi
call fcn.005d4fe0
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x104]
dec edx
dec ebp
test eax, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x64], ebp
jbe 0x5d6240
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d6240
push edi
mov ecx, esi
call fcn.005d5160
push 0
mov edi, eax
mov ecx, dword [edi + 0xc]
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 3
push 4
call fcn.005d96b0
dec dword [esp + 0x14]
mov bl, 1
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x5d631a
mov eax, dword [esi + 0x104]
test eax, eax
jbe 0x5d6316
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d6316
mov edx, dword [esp + 0x4c]
mov ax, word [edx + 0x10]
mov edx, dword [esi + 0x100]
movzx ecx, ax
cmp ecx, edx
jbe 0x5d6286
mov ax, dx
movzx edx, ax
mov eax, dword [esp + 0x4c]
push edx
push eax
mov ecx, esi
call fcn.005d4be0
test bl, bl
mov edi, eax
je 0x5d62ac
mov ecx, dword [edi + 0xc]
push 0
push 7
push 1
call fcn.005d96b0
jmp 0x5d6304
mov al, byte [esp + 0x12]
test al, al
je 0x5d6302
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x6c]
add ecx, edx
add ecx, ebp
cmp ecx, 2
jae 0x5d6302
mov ecx, dword [edi + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 3
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 3
push 4
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 6
call fcn.005d96b0
mov byte [esp + 0x12], 0
mov bl, 1
mov ecx, dword [esp + 0x14]
dec ebp
dec ecx
test ebp, ebp
mov dword [esp + 0x14], ecx
jne 0x5d6252
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5d63e8
mov ebp, dword [esp + 0x6c]
mov ecx, eax
sub ebp, ecx
shl ebp, 2
mov eax, dword [esi + 0x104]
test eax, eax
jbe 0x5d63e8
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d63e8
mov eax, dword [esi + 0x74]
mov eax, dword [eax + ebp]
push eax
mov ecx, esi
call fcn.005d4fe0
test bl, bl
mov edi, eax
je 0x5d6371
mov ecx, dword [edi + 0xc]
push 0
push 7
push 1
call fcn.005d96b0
jmp 0x5d63cb
mov al, byte [esp + 0x12]
test al, al
je 0x5d63c9
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x58]
add ecx, edx
add ecx, dword [esp + 0x1c]
cmp ecx, 2
jae 0x5d63c9
mov ecx, dword [edi + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 3
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 3
push 4
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 6
call fcn.005d96b0
mov byte [esp + 0x12], 0
mov bl, 1
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x14]
dec eax
add ebp, 4
dec edx
test eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x14], edx
jne 0x5d6331
mov al, byte [esp + 0x1b]
test al, al
je 0x5d65a5
mov eax, dword [esp + 0x74]
test eax, eax
jbe 0x5d64bb
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x10]
mov edi, dword [esi + 0x100]
movzx edx, ax
cmp edx, edi
jbe 0x5d6418
mov ax, di
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4be0
test bl, bl
mov edi, eax
je 0x5d6454
mov al, byte [esp + 0x38]
test al, al
je 0x5d644e
mov al, byte [esp + 0x12]
test al, al
jne 0x5d644e
mov ecx, dword [edi + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
push 0
push 4
jmp 0x5d64ab
push 0
push 4
jmp 0x5d649d
mov al, byte [esp + 0x12]
test al, al
push 0
je 0x5d649b
mov ecx, dword [edi + 0xc]
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 3
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 4
push 4
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 6
call fcn.005d96b0
mov byte [esp + 0x12], 0
jmp 0x5d64b5
push 2
mov ecx, dword [edi + 0xc]
push 1
call fcn.005d96b0
push 0
push 2
mov ecx, dword [edi + 0xc]
push 4
call fcn.005d96b0
dec dword [esp + 0x28]
mov bl, 1
mov eax, dword [esp + 0x68]
test eax, eax
jbe 0x5d6532
mov ecx, dword [esp + 0x80]
mov ax, word [ecx + 0x10]
mov edi, dword [esi + 0x100]
movzx edx, ax
cmp edx, edi
jbe 0x5d64de
mov ax, di
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4be0
test bl, bl
mov edi, eax
jne 0x5d6520
mov ecx, dword [edi + 0xc]
push 0
push 0
push 3
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 6
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 5
push 4
call fcn.005d96b0
mov byte [esp + 0x12], bl
mov bl, 1
mov ecx, dword [edi + 0xc]
push 0
push 5
push 1
call fcn.005d96b0
dec dword [esp + 0x28]
mov al, byte [esp + 0x12]
test al, al
je 0x5d60fb
push 0
push 0
mov ecx, esi
call fcn.005d4be0
test bl, bl
mov edi, eax
je 0x5d657f
cmp dword [esp + 0x84], 2
jne 0x5d657f
mov ecx, dword [edi + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 4
push 4
call fcn.005d96b0
mov byte [esp + 0x12], 0
jmp 0x5d60fb
mov ecx, dword [edi + 0xc]
push 0
push 2
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 2
push 4
call fcn.005d96b0
mov byte [esp + 0x12], 0
jmp 0x5d60fb
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.005d55a0
jmp 0x5d60fb
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x5d6850
mov al, byte [esi + 0x118]
test al, al
mov dword [esp + 0x14], 0
je 0x5d668e
mov al, byte [esi + 0x120]
test al, al
je 0x5d668e
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x5d668e
mov al, byte [esp + 0x23]
test al, al
jne 0x5d668e
mov al, byte [esp + 0x2f]
test al, al
jne 0x5d668e
mov al, byte [esp + 0x13]
test al, al
jne 0x5d668e
mov ebx, dword [esp + 0x14]
mov edi, 0x18
lea ecx, [ecx]
mov eax, dword [esi + 0x104]
test eax, eax
jbe 0x5d667e
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d667e
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x2c]
mov ecx, dword [edi + eax]
mov ax, word [ecx + 0x10]
movzx edx, ax
inc ebx
add edi, 4
cmp edx, dword [esi + 0x100]
jbe 0x5d6658
mov ax, word [esi + 0x100]
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4be0
mov ecx, dword [eax + 0xc]
push 0
push 0xd
push 1
call fcn.005d96b0
dec ebp
jne 0x5d6620
mov dword [esp + 0x14], ebx
jmp 0x5d6850
test ebp, ebp
mov dword [esp + 0x14], ebx
je 0x5d6850
push 0
jmp 0x5d6693
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.005d55a0
lea ebx, [ebx]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0x2c]
mov ebx, dword [ecx + eax*4 + 0x18]
mov di, word [ebx + 0x10]
inc eax
movzx edx, di
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x100]
cmp edx, eax
jbe 0x5d66c8
mov di, ax
push 0
push 0
push 6
push 5
mov ecx, esi
call fcn.005d5940
movzx eax, di
push eax
push ebx
mov ecx, esi
call fcn.005d4be0
mov edi, eax
mov al, byte [esi + 0x118]
test al, al
je 0x5d67cf
mov al, byte [esi + 0x120]
test al, al
je 0x5d67cf
mov al, byte [esp + 0x13]
test al, al
jne 0x5d67d7
mov ecx, dword [edi + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0x22
push 3
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 2
push 4
call fcn.005d96b0
dec ebp
je 0x5d6850
mov ebx, dword [esp + 0x14]
lea ebx, [ebx*4 + 0x18]
lea esp, [esp]
mov eax, dword [esi + 0x104]
xor edi, edi
cmp eax, edi
jbe 0x5d67c0
cmp dword [esi + 0x108], edi
jbe 0x5d67c0
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebx + edx]
mov edx, dword [esp + 0x14]
mov ax, word [ecx + 0x10]
mov edi, dword [esi + 0x100]
inc edx
mov dword [esp + 0x14], edx
movzx edx, ax
add ebx, 4
cmp edx, edi
jbe 0x5d678e
mov ax, di
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4be0
push 0
mov edi, eax
mov ecx, dword [edi + 0xc]
push 0xd
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 7
push 4
call fcn.005d96b0
dec ebp
jne 0x5d6750
jmp 0x5d6850
cmp ebp, edi
je 0x5d6850
cmp dword [esi + 0x3c], edi
je 0x5d6848
jmp 0x5d6821
mov al, byte [esp + 0x13]
test al, al
je 0x5d6809
mov ecx, dword [edi + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 4
push 4
call fcn.005d96b0
mov ecx, dword [edi + 0xc]
push 0
push 0
push 3
call fcn.005d96b0
push 0
push 0
push 6
jmp 0x5d680f
push 0
push 2
push 4
mov ecx, dword [edi + 0xc]
call fcn.005d96b0
mov eax, dword [esi + 0x3c]
dec ebp
test eax, eax
je 0x5d6848
xor edi, edi
mov ecx, dword [esi + 0x3c]
cmp ecx, edi
je 0x5d6835
dec dword [ecx + 0x68]
jne 0x5d6832
call fcn.005c0b70
mov dword [esi + 0x3c], edi
mov eax, dword [esi + 0x38]
inc eax
mov dword [esi + 0x104], edi
mov dword [esi + 0x108], edi
mov dword [esi + 0x38], eax
test ebp, ebp
jne 0x5d66a0
mov ebp, dword [esp + 0x78]
test ebp, ebp
mov edi, dword [esp + 0x40]
jne 0x5d6864
test edi, edi
je 0x5d6995
test edi, edi
mov dword [esp + 0x34], edi
jne 0x5d687b
push 3
push 1
mov ecx, esi
call fcn.005d4100
test al, al
jne 0x5d6887
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.005d55a0
add edi, ebp
mov dword [esp + 0x1c], edi
je 0x5d6995
mov dword [esp + 0x40], 0
jmp 0x5d68a0
mov eax, dword [esi + 0x3c]
test eax, eax
mov bl, 1
jne 0x5d6922
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push edx
push eax
push 3
push 1
mov ecx, esi
call fcn.005d5940
mov eax, dword [esp + 0x34]
xor bl, bl
test eax, eax
je 0x5d6922
mov ecx, dword [esi + 0x8c]
mov ebx, dword [esp + 0x40]
mov edi, dword [ebx + ecx]
push edi
mov ecx, esi
call fcn.005d4fe0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x104]
dec edx
add ebx, 4
test eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], ebx
jbe 0x5d6920
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d6920
push edi
mov ecx, esi
call fcn.005d5160
mov ecx, dword [eax + 0xc]
push 0
push 7
push 1
call fcn.005d96b0
mov bl, 1
test ebp, ebp
je 0x5d697c
mov edi, dword [esp + 0x78]
sub edi, ebp
shl edi, 2
nop
mov eax, dword [esi + 0x104]
test eax, eax
jbe 0x5d697c
mov eax, dword [esi + 0x108]
test eax, eax
jbe 0x5d697c
mov edx, dword [esi + 0xa4]
mov eax, dword [edi + edx]
push eax
mov ecx, esi
call fcn.005d4fe0
test bl, bl
je 0x5d6969
mov ecx, dword [eax + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
jmp 0x5d696b
mov bl, 1
mov ecx, dword [esp + 0x1c]
dec ebp
add edi, 4
dec ecx
test ebp, ebp
mov dword [esp + 0x1c], ecx
jne 0x5d6930
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5d6995
mov eax, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.005d55a0
jmp 0x5d68a0
mov al, byte [esp + 0x2e]
test al, al
je 0x5d6ad2
cmp dword [esi + 0x11c], 1
jne 0x5d69ae
xor ebp, ebp
jmp 0x5d69d8
mov ebp, dword [esp + 0x88]
test ebp, ebp
je 0x5d69d8
mov ecx, dword [0x719c64]
mov eax, 2
cmp ecx, eax
jbe 0x5d69d0
cmp dword [0x719c68], eax
ja 0x5d69d8
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x90]
lea edi, [ecx + eax]
add edi, ebp
test eax, eax
jne 0x5d6a0b
push 2
push 2
mov ecx, esi
call fcn.005d4100
test al, al
je 0x5d6a0b
cmp dword [esi + 0x104], edi
jb 0x5d6a0b
cmp dword [esi + 0x108], edi
jae 0x5d6a17
mov edx, dword [esp + 0x24]
push edx
mov ecx, esi
call fcn.005d55a0
mov eax, dword [esi + 0x3c]
test eax, eax
mov bl, 1
jne 0x5d6a37
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
push eax
push ecx
push 2
push 2
mov ecx, esi
call fcn.005d5940
xor bl, bl
test ebp, ebp
jbe 0x5d6a76
mov ecx, dword [esi + 0x104]
mov eax, 1
cmp ecx, eax
jbe 0x5d6a76
cmp dword [esi + 0x108], eax
jbe 0x5d6a76
mov ecx, dword [esp + 0x60]
mov ax, word [ecx + 0x10]
mov edi, dword [esi + 0x100]
movzx edx, ax
cmp edx, edi
jbe 0x5d6a6a
mov ax, di
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4dd0
mov ecx, dword [esi + 0xbc]
mov eax, dword [ecx]
push eax
mov ecx, esi
call fcn.005d4fe0
test bl, bl
je 0x5d6a98
mov ecx, dword [eax + 0xc]
push 0
push 7
push 1
call fcn.005d96b0
mov eax, dword [esp + 0x48]
test eax, eax
jbe 0x5d6ad2
mov ecx, dword [esp + 0x44]
mov ax, word [ecx + 0x10]
mov edi, dword [esi + 0x100]
movzx edx, ax
cmp edx, edi
jbe 0x5d6ab8
mov ax, di
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4be0
mov ecx, dword [eax + 0xc]
push 0
push 4
push 1
call fcn.005d96b0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5d6b64
push 2
push 2
mov ecx, esi
call fcn.005d4100
test al, al
je 0x5d6b01
mov eax, dword [esi + 0x104]
test eax, eax
je 0x5d6b01
mov eax, dword [esi + 0x108]
test eax, eax
jne 0x5d6b0d
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.005d55a0
mov eax, dword [esi + 0x3c]
test eax, eax
mov edi, 7
jne 0x5d6b33
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push edx
push eax
push 2
push 2
mov ecx, esi
call fcn.005d5940
mov edi, 2
mov ecx, dword [esp + 0x70]
mov ax, word [ecx + 0x10]
mov ebx, dword [esi + 0x100]
movzx edx, ax
cmp edx, ebx
jbe 0x5d6b4b
mov ax, bx
movzx eax, ax
push eax
push ecx
mov ecx, esi
call fcn.005d4be0
mov ecx, dword [eax + 0xc]
push 0
push edi
push 1
call fcn.005d96b0
mov ebx, dword [esp + 0x94]
test ebx, ebx
je 0x5d6cb3
mov al, byte [esi + 0x118]
xor ebp, ebp
xor edi, edi
test al, al
je 0x5d6bc7
cmp dword [esi + 0x38], ebp
jne 0x5d6bc7
cmp dword [esi + 0x104], ebp
jbe 0x5d6bbd
cmp dword [esi + 0x108], ebp
jbe 0x5d6bbd
mov ecx, dword [esi + 0xd4]
mov eax, dword [ecx + edi*4]
push eax
mov ecx, esi
inc edi
call fcn.005d4fe0
mov ecx, dword [eax + 0xc]
push ebp
push 0xd
push 1
call fcn.005d96b0
dec ebx
jne 0x5d6b86
jmp 0x5d6cb3
cmp ebx, ebp
je 0x5d6cb3
jmp 0x5d6bd6
push 6
push 5
mov ecx, esi
call fcn.005d4100
test al, al
jne 0x5d6bde
mov ecx, esi
push ebp
call fcn.005d55a0
cmp ebx, ebp
je 0x5d6cb3
lea edx, [edi*4]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
lea esp, [esp]
cmp dword [esi + 0x104], ebp
je 0x5d6c10
cmp dword [esi + 0x108], ebp
jne 0x5d6c3d
mov eax, dword [esi + 0x3c]
cmp eax, ebp
je 0x5d6c3d
mov ecx, eax
cmp ecx, ebp
je 0x5d6c2a
dec dword [ecx + 0x68]
jne 0x5d6c27
call fcn.005c0b70
mov dword [esi + 0x3c], ebp
mov eax, dword [esi + 0x38]
inc eax
mov dword [esi + 0x104], ebp
mov dword [esi + 0x108], ebp
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0xd4]
mov edi, dword [eax + ecx]
add eax, 4
mov dword [esp + 0x3c], eax
cmp dword [esi + 0x3c], ebp
jne 0x5d6c67
mov edx, dword [esp + 0x38]
push edx
push ebx
push 6
push 5
mov ecx, esi
call fcn.005d5940
push edi
mov ecx, esi
call fcn.005d4fe0
mov ecx, dword [eax + 0xc]
push ebp
push 2
push 4
call fcn.005d96b0
mov eax, dword [esi + 0x3c]
cmp eax, ebp
je 0x5d6ca9
mov ecx, eax
cmp ecx, ebp
je 0x5d6c96
dec dword [ecx + 0x68]
jne 0x5d6c93
call fcn.005c0b70
mov dword [esi + 0x3c], ebp
mov eax, dword [esi + 0x38]
inc eax
mov dword [esi + 0x104], ebp
mov dword [esi + 0x108], ebp
mov dword [esi + 0x38], eax
dec dword [esp + 0x44]
jne 0x5d6c00
mov edi, dword [esp + 0x24]
push edi
mov ecx, esi
call fcn.005d55a0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [edx + 0x10]
push edi
push ecx
push eax
mov ecx, esi
call fcn.005d5b30
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret 0x1c