Function at 0x40ca50
Capabilities:
Check http status code

Disassembly:
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor edi, edi
lea ebp, [esi + 0x12c]
mov dword [esi + 0x11c], edi
mov ecx, ebp
mov dword [esi + 0x120], edi
mov dword [esi + 0x128], edi
call fcn.00421ec1
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x64
jg 0x40d638
je 0x40d533
lea eax, [ebx - 1]
cmp eax, 0x1e
ja case.0x40ee44.510
xor ecx, ecx
mov cl, byte [eax + 0x40f334]
jmp dword [ecx*4 + 0x40f300]
mov ebp, dword [esp + 0x20]
push 1
mov ecx, dword [ebp]
call fcn.00411650
push 1
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40cace
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40cad0
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + 0x43d6e4]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40cafb
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40caf5
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf4], 0x46
cmp edi, ecx
mov byte [esi + 0x104], 0x5a
mov dword [esi + 0x128], ecx
jbe 0x40cb91
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx edx, byte [ebx + ecx]
movsx eax, byte [edx + 0x43d734]
mov cl, byte [eax + 0x43d6e4]
push ecx
mov ecx, esi
call fcn.0040f630
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40cb5f
mov edx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
mov eax, dword [esp + 0x20]
mov ebp, 4
push ebp
mov ecx, dword [eax]
call fcn.00411650
push ebp
mov ecx, esi
call fcn.0040f790
jmp 0x40cbe7
mov ecx, dword [esp + 0x20]
push 3
mov ecx, dword [ecx]
call fcn.00411650
push 3
mov ecx, esi
call fcn.0040f790
mov ebp, 4
call fcn.00425298
cmp eax, edi
je 0x40cbf9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40cbfb
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + 0x43d6e4]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40cc21
mov edx, dword [esi + 0x11c]
inc edx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, ebp
jl 0x40cc1b
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + 0x43d6e4]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x28], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40cc71
mov edx, dword [esi + 0x11c]
inc edx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, ebp
jl 0x40cc6b
mov dl, byte [0x43d6f1]
mov ebp, dword [esp + 0x18]
mov byte [esi + 0xf5], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf4], al
mov dl, byte [0x43d6f2]
mov byte [esi + 0x105], dl
mov al, byte [0x43d6f2]
cmp ebp, ecx
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ecx
jbe 0x40cd4b
mov edi, dword [esp + 0x14]
cmp ebx, 4
jne 0x40cd14
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
movsx eax, byte [edx + 0x43d734]
mov cl, byte [eax + 0x43d6e4]
push ecx
jmp 0x40cd31
cmp ebx, 0x14
jne 0x40cd38
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
movsx ecx, byte [eax + 0x43d7b0]
mov dl, byte [ecx + str.34567890JQKA2FZ]
push edx
mov ecx, esi
call fcn.0040f630
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebp
jb 0x40ccf5
mov eax, dword [esp + 0x24]
push eax
push ecx
lea eax, [esi + 0x12c]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
jmp 0x40f2e2
mov ebp, dword [esp + 0x20]
push 0xe
mov ecx, dword [ebp]
call fcn.00411650
push 0xe
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40cd97
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40cd99
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x2d
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + str.34567890JQKA2FZ]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40cdc4
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40cdbe
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + str.34567890JQKA2FZ]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x28], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40ce14
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40ce0e
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + str.34567890JQKA2FZ]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x2c], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40ce64
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40ce5e
mov cl, byte [0x43d7ad]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf6], cl
mov dl, byte [0x43d7ad]
mov byte [esi + 0xf5], dl
mov al, byte [0x43d7ad]
mov byte [esi + 0xf4], al
mov cl, byte [0x43d7ae]
mov ebx, dword [esp + 0x14]
mov byte [esi + 0x106], cl
mov dl, byte [0x43d7ae]
mov byte [esi + 0x105], dl
mov al, byte [0x43d7ae]
test edi, edi
mov byte [esi + 0x104], al
mov dword [esi + 0x128], 0
jbe 0x40cf38
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43da61]
mov al, byte [eax + 0x43da60]
push edx
push eax
call fcn.0040f7a0
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40cf04
mov ecx, dword [esi + 0x128]
movsx edx, byte [ecx + ebx]
mov ecx, dword [esp + 0x24]
mov al, byte [edx*2 + 0x43da60]
push eax
push ecx
push ecx
lea eax, [esi + 0x12c]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411670
jmp case.0x40ee44.510
mov ebp, dword [esp + 0x20]
push 9
mov ecx, dword [ebp]
call fcn.00411650
push 9
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40cf98
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40cf9a
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40cfc5
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40cfbf
mov edi, dword [esp + 0x18]
mov dword [esi + 0x128], ecx
cmp edi, ecx
jbe 0x40d04f
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d7e9]
mov al, byte [eax + 0x43d7e8]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40d01b
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
mov ebp, dword [esp + 0x20]
push 0xb
mov ecx, dword [ebp]
call fcn.00411650
push 0xb
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40d09d
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40d09f
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40d0c5
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 6
jle 0x40d0bf
mov dword [esi + 0x11c], 1
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40d11c
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 7
jle 0x40d116
mov edi, dword [esp + 0x18]
mov dword [esi + 0x128], ecx
cmp edi, ecx
jbe 0x40d1a9
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d7e9]
mov al, byte [eax + 0x43d7e8]
push edx
push eax
call fcn.0040f860
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40d175
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
mov ebp, dword [esp + 0x18]
cmp ebp, edi
je case.0x40ca9e.1
mov dword [esi + 0x128], edi
jbe 0x40d2a6
mov edi, dword [esp + 0x14]
cmp ebx, 5
je 0x40d218
cmp ebx, 3
je 0x40d218
cmp ebx, 0x15
je 0x40d1fe
cmp ebx, 0x13
jne 0x40d23b
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
movsx ecx, byte [eax + 0x43d7b0]
mov dl, byte [ecx + str.34567890JQKA2FZ]
push edx
jmp 0x40d230
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
movsx edx, byte [ecx + 0x43d734]
mov al, byte [edx + 0x43d6e4]
push eax
lea ecx, [esi + 0x12c]
call fcn.0042215e
cmp dword [esp + 0x24], 4
je 0x40d28f
cmp ebx, 5
je 0x40d270
cmp ebx, 3
je 0x40d270
cmp ebx, 0x15
je 0x40d256
cmp ebx, 0x13
jne 0x40d28f
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
movsx eax, byte [edx + 0x43d7b0]
mov cl, byte [eax + str.34567890JQKA2FZ]
push ecx
jmp 0x40d288
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
movsx ecx, byte [eax + 0x43d734]
mov dl, byte [ecx + 0x43d6e4]
push edx
mov ecx, esi
call fcn.0040f630
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebp
jb 0x40d1ea
mov eax, dword [esi + 0x12c]
lea edi, [esi + 0x12c]
cmp dword [eax - 8], 4
jle 0x40d2c0
push edi
mov ecx, esi
call fcn.0040f6f0
mov ebx, dword [esp + 0x24]
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edi
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
call fcn.00410c70
cmp ebx, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp ebp, 4
je 0x40d34a
test ebx, ebx
mov dword [esi + 0x128], 0
jbe 0x40d34a
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43da61]
mov dl, byte [eax + 0x43da60]
push ecx
push edx
mov ecx, esi
call fcn.0040f7a0
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40d316
mov eax, dword [esi + 0x128]
movsx ecx, byte [eax + edi]
lea eax, [esi + 0x12c]
mov dl, byte [ecx*2 + 0x43da60]
push edx
push ebp
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.00421cab
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
call fcn.00411670
cmp ebp, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40d416
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40d3d1
mov ecx, dword [esi + 0x128]
movsx eax, byte [edi + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d7e9]
mov al, byte [eax + 0x43d7e8]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
mov ecx, ebp
mov al, byte [edx*2 + 0x43d7e8]
push eax
call fcn.0042215e
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
mov ecx, ebp
mov al, byte [edx*2 + 0x43d7e9]
push eax
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40d3a9
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40d4ce
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40d489
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43d7e9]
mov dl, byte [eax + 0x43d7e8]
push ecx
push edx
mov ecx, esi
call fcn.0040f860
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d7e8]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d7e9]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40d461
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
call fcn.00425298
cmp eax, edi
je 0x40d51f
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
push 6
mov ecx, eax
call fcn.00425c43
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
xor eax, eax
push 6
mov ecx, eax
call fcn.00425c43
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebp, dword [esp + 0x20]
push 9
mov ecx, dword [ebp]
call fcn.00411650
push 9
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40d55c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40d55e
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + 0x43d714]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40d589
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40d583
mov edi, dword [esp + 0x18]
mov dword [esi + 0x128], ecx
cmp edi, ecx
jbe 0x40d613
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d8b9]
mov al, byte [eax + 0x43d8b8]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40d5df
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
cmp ebx, 0xc8
jg 0x40de0f
je 0x40dcf7
lea eax, [ebx - 0x66]
cmp eax, 8
ja case.0x40ee44.510
jmp dword [eax*4 + 0x40f354]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40d6e6
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40d6a1
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43d8b9]
mov dl, byte [eax + 0x43d8b8]
push ecx
push edx
mov ecx, esi
call fcn.0040f820
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d8b8]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d8b9]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40d679
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebp, dword [esp + 0x20]
push 9
mov ecx, dword [ebp]
call fcn.00411650
push 9
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40d73e
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40d740
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + 0x43d724]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40d76b
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40d765
mov dl, byte [0x43d731]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf4], dl
mov al, byte [0x43d732]
cmp edi, ecx
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ecx
jbe 0x40d80c
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d989]
mov al, byte [eax + 0x43d988]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40d7d8
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40d8ba
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40d875
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43d989]
mov dl, byte [eax + 0x43d988]
push ecx
push edx
mov ecx, esi
call fcn.0040f820
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d988]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d989]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40d84d
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov edi, dword [esp + 0x18]
test edi, edi
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe case.0x40ee44.510
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d989]
mov al, byte [eax + 0x43d988]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40d909
jmp case.0x40ee44.510
mov ebp, dword [esp + 0x20]
push 1
mov ecx, dword [ebp]
call fcn.00411650
push 9
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40d96b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40d96d
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + 0x43d714]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40d998
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40d992
mov edi, dword [esp + 0x18]
mov dword [esi + 0x128], ecx
cmp edi, ecx
jbe 0x40da22
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d8b9]
mov al, byte [eax + 0x43d8b8]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40d9ee
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
mov ebp, dword [esp + 0x20]
push 3
mov ecx, dword [ebp]
call fcn.00411650
push 0xb
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40da6b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40da6d
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + 0x43d714]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40da93
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 6
jle 0x40da8d
mov dword [esi + 0x11c], 1
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + 0x43d714]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40daea
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 7
jle 0x40dae4
mov edi, dword [esp + 0x18]
mov dword [esi + 0x128], ecx
cmp edi, ecx
jbe 0x40db77
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d8b9]
mov al, byte [eax + 0x43d8b8]
push edx
push eax
call fcn.0040f860
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40db43
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40dc07
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40dbdb
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43d8b9]
mov dl, byte [eax + 0x43d8b8]
push ecx
push edx
mov ecx, esi
call fcn.0040f820
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d8b9]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40dbb3
mov eax, dword [ebp]
cmp dword [eax - 8], 4
jle 0x40dc18
push ebp
mov ecx, esi
call fcn.0040f6f0
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
call fcn.00410c70
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40dcb7
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40dc8b
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43d8b9]
mov dl, byte [eax + 0x43d8b8]
push ecx
push edx
mov ecx, esi
call fcn.0040f860
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d8b9]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40dc63
mov eax, dword [ebp]
cmp dword [eax - 8], 4
jle 0x40dcc8
push ebp
mov ecx, esi
call fcn.0040f6f0
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
call fcn.00410c70
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebp, dword [esp + 0x20]
push 9
mov ecx, dword [ebp]
call fcn.00411650
push 9
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40dd20
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40dd22
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40dd48
mov edx, dword [esi + 0x11c]
inc edx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 6
jle 0x40dd42
mov dl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf4], dl
mov al, byte [0x43d6f2]
cmp edi, ecx
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ecx
jbe 0x40ddea
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43dad1]
mov al, byte [eax + 0x43dad0]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40ddb6
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
cmp ebx, 0x12c
jg 0x40e629
je 0x40e4b8
lea eax, [ebx - 0xc9]
cmp eax, 0xb
ja case.0x40ee44.510
jmp dword [eax*4 + 0x40f378]
mov ebp, dword [esp + 0x20]
push 0xb
mov ecx, dword [ebp]
call fcn.00411650
push 0xb
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40de60
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40de62
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40de88
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 6
jle 0x40de82
mov dword [esi + 0x11c], 1
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40dedf
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 7
jle 0x40ded9
mov dl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf5], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf4], al
mov dl, byte [0x43d6f2]
mov byte [esi + 0x105], dl
mov al, byte [0x43d6f2]
cmp edi, ecx
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ecx
jbe 0x40df9a
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43dad1]
mov al, byte [eax + 0x43dad0]
push edx
push eax
call fcn.0040f860
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40df66
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
mov edx, dword [esp + 0x20]
mov ebx, 0xd
push ebx
mov ecx, dword [edx]
call fcn.00411650
push ebx
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40dfea
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40dfec
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov dword [esi + 0x11c], ebp
mov ecx, 3
mov dword [esi + 0x120], ebp
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, ebx
jl 0x40e017
mov edx, dword [esi + 0x11c]
add edx, ecx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 9
jle 0x40e011
mov dword [esi + 0x11c], 1
mov dword [esi + 0x120], ebp
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, ebx
jl 0x40e06c
mov edx, dword [esi + 0x11c]
add edx, ecx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 0xa
jle 0x40e066
mov dword [esi + 0x11c], 2
mov dword [esi + 0x120], ebp
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, ebx
jl 0x40e0c1
mov edx, dword [esi + 0x11c]
add edx, ecx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 0xb
jle 0x40e0bb
mov cl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf6], cl
mov dl, byte [0x43d6f1]
mov byte [esi + 0xf5], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf4], al
mov cl, byte [0x43d6f2]
mov byte [esi + 0x106], cl
mov dl, byte [0x43d6f2]
mov byte [esi + 0x105], dl
mov al, byte [0x43d6f2]
cmp edi, ebp
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ebp
jbe 0x40e192
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43dad1]
mov al, byte [eax + 0x43dad0]
push edx
push eax
call fcn.0040f7a0
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40e15e
mov ecx, dword [esp + 0x24]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
jmp 0x40ed59
mov dword [esi + 0x128], edi
mov edi, dword [esp + 0x18]
test edi, edi
jbe case.0x40ee44.510
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x128]
movsx eax, byte [ebx + eax]
shl eax, 1
mov cl, byte [eax + 0x43dad1]
mov dl, byte [eax + 0x43dad0]
push ecx
push edx
mov ecx, esi
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40e1b9
jmp case.0x40ee44.510
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40e27b
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40e236
mov eax, dword [esi + 0x128]
movsx eax, byte [edi + eax]
shl eax, 1
mov cl, byte [eax + 0x43dad1]
mov dl, byte [eax + 0x43dad0]
push ecx
push edx
mov ecx, esi
call fcn.0040f820
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43dad0]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43dad1]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40e20e
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov dword [esi + 0x128], edi
mov edi, dword [esp + 0x18]
test edi, edi
jbe case.0x40ee44.510
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43dad1]
mov al, byte [eax + 0x43dad0]
push edx
push eax
call fcn.0040f860
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40e2c0
jmp case.0x40ee44.510
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40e382
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40e33d
mov ecx, dword [esi + 0x128]
movsx eax, byte [edi + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43dad1]
mov al, byte [eax + 0x43dad0]
push edx
push eax
call fcn.0040f860
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
mov ecx, ebp
mov al, byte [edx*2 + 0x43dad0]
push eax
call fcn.0042215e
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
mov ecx, ebp
mov al, byte [edx*2 + 0x43dad1]
push eax
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40e315
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov dword [esi + 0x128], edi
mov edi, dword [esp + 0x18]
test edi, edi
jbe case.0x40ee44.510
mov ebx, dword [esp + 0x14]
mov edx, dword [esi + 0x128]
movsx eax, byte [ebx + edx]
shl eax, 1
mov cl, byte [eax + 0x43dad1]
mov dl, byte [eax + 0x43dad0]
push ecx
push edx
mov ecx, esi
call fcn.0040f7a0
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40e3c7
jmp case.0x40ee44.510
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40e489
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40e444
mov eax, dword [esi + 0x128]
movsx eax, byte [edi + eax]
shl eax, 1
mov cl, byte [eax + 0x43dad1]
mov dl, byte [eax + 0x43dad0]
push ecx
push edx
mov ecx, esi
call fcn.0040f7a0
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43dad0]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43dad1]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40e41c
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebp, dword [esp + 0x20]
push 7
mov ecx, dword [ebp]
call fcn.00411650
push 7
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40e4e1
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40e4e3
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + 0x43d6e4]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40e509
mov edx, dword [esi + 0x11c]
inc edx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 0x10
jl 0x40e503
mov cl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf7], cl
mov dl, byte [0x43d6f1]
mov byte [esi + 0xf6], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf5], al
mov cl, byte [0x43d6f1]
mov byte [esi + 0xf4], cl
mov dl, byte [0x43d6f2]
mov byte [esi + 0x107], dl
mov al, byte [0x43d6f2]
mov ebx, dword [esp + 0x14]
mov byte [esi + 0x106], al
mov cl, byte [0x43d6f2]
mov byte [esi + 0x105], cl
mov dl, byte [0x43d6f2]
test edi, edi
mov byte [esi + 0x104], dl
mov dword [esi + 0x128], 0
jbe 0x40e5f4
mov eax, dword [esi + 0x128]
movsx ecx, byte [ebx + eax]
movsx edx, byte [ecx + 0x43d734]
mov ecx, esi
mov al, byte [edx + 0x43d6e4]
push eax
call fcn.0040f670
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40e5c2
add ebx, 0x64
lea ecx, [esi + 0x114]
mov edx, dword [ebx]
mov dword [ecx], edx
mov ax, word [ebx + 4]
mov word [ecx + 4], ax
mov ecx, dword [esp + 0x24]
push ecx
push ecx
lea eax, [esi + 0x12c]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
cmp ebx, 0x1f7
jg 0x40ee2d
je 0x40ed75
lea eax, [ebx - 0x12d]
cmp eax, 0xc9
ja case.0x40ee44.510
xor edx, edx
mov dl, byte [eax + 0x40f3c8]
jmp dword [edx*4 + 0x40f3a8]
cmp dword [esp + 0x18], edi
je case.0x40ca9e.1
mov edi, dword [esp + 0x14]
lea ecx, [esi + 0x114]
mov ebx, dword [esp + 0x24]
lea eax, [edi + 0x64]
mov edx, dword [edi + 0x64]
mov dword [ecx], edx
mov ax, word [eax + 4]
mov dword [esi + 0x128], 0
mov word [ecx + 4], ax
mov eax, dword [esp + 0x18]
test eax, eax
jbe 0x40e6ef
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
movsx eax, byte [edx + 0x43d734]
mov cl, byte [eax + 0x43d6e4]
push ecx
mov ecx, ebp
call fcn.0042215e
cmp ebx, 4
je 0x40e6d8
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
movsx ecx, byte [eax + 0x43d734]
mov dl, byte [ecx + 0x43d6e4]
mov ecx, esi
push edx
call fcn.0040f670
mov edx, dword [esi + 0x128]
mov eax, dword [esp + 0x18]
inc edx
mov ecx, edx
mov dword [esi + 0x128], edx
cmp ecx, eax
jb 0x40e695
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
jmp 0x40f2e2
mov ebx, dword [esp + 0x18]
mov dword [esi + 0x128], edi
cmp ebx, edi
jbe case.0x40ee44.510
mov edi, dword [esp + 0x14]
mov edx, dword [esi + 0x128]
mov cl, byte [edi + edx + 1]
lea eax, [edi + edx]
test cl, cl
movsx eax, byte [eax]
movsx ecx, byte [eax + 0x43d734]
mov dl, byte [ecx + 0x43d6e4]
mov ecx, esi
push edx
jne 0x40e749
call fcn.0040f6b0
jmp 0x40e74e
call fcn.0040f670
mov ecx, dword [esi + 0x128]
add ecx, 2
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40e71e
jmp case.0x40ee44.510
mov ebp, dword [esp + 0x20]
push 7
mov ecx, dword [ebp]
call fcn.00411650
push 9
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40e791
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40e793
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + 0x43d6e4]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40e7be
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40e7b8
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf4], 0x46
cmp edi, ecx
mov byte [esi + 0x104], 0x5a
mov dword [esi + 0x128], ecx
jbe 0x40e856
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d989]
mov al, byte [eax + 0x43d988]
push edx
push eax
call fcn.0040f820
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40e822
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
mov eax, dword [esp + 0x18]
cmp eax, edi
je case.0x40ca9e.1
mov ebx, dword [esp + 0x24]
mov dword [esi + 0x128], 0
test eax, eax
jbe 0x40e8f4
mov edi, dword [esp + 0x14]
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
movsx ecx, byte [eax + 0x43d734]
mov dl, byte [ecx + 0x43d6e4]
mov ecx, ebp
push edx
call fcn.0042215e
cmp ebx, 4
je 0x40e8dd
mov eax, dword [esi + 0x128]
movsx eax, byte [edi + eax]
shl eax, 1
mov cl, byte [eax + 0x43d989]
mov dl, byte [eax + 0x43d988]
push ecx
push edx
mov ecx, esi
call fcn.0040f820
mov edx, dword [esi + 0x128]
mov eax, dword [esp + 0x18]
inc edx
mov ecx, edx
mov dword [esi + 0x128], edx
cmp ecx, eax
jb 0x40e898
mov ecx, dword [ebp]
cmp dword [ecx - 8], 2
jle 0x40e905
push ebp
mov ecx, esi
call fcn.0040f6f0
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
call fcn.00410c70
cmp ebx, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ebp, dword [esp + 0x20]
push 0xb
mov ecx, dword [ebp]
call fcn.00411650
push 0xb
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40e959
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40e95b
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40e981
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 6
jle 0x40e97b
mov dword [esi + 0x11c], 1
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40e9d8
mov edx, dword [esi + 0x11c]
add edx, 2
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 7
jle 0x40e9d2
mov dl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf5], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf4], al
mov dl, byte [0x43d6f2]
mov byte [esi + 0x105], dl
mov al, byte [0x43d6f2]
cmp edi, ecx
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ecx
jbe 0x40ea93
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43dad1]
mov al, byte [eax + 0x43dad0]
push edx
push eax
call fcn.0040f860
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40ea5f
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
call fcn.00411680
jmp case.0x40ee44.510
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40eb41
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40eafc
mov edx, dword [esi + 0x128]
movsx eax, byte [edi + edx]
shl eax, 1
mov cl, byte [eax + 0x43dad1]
mov dl, byte [eax + 0x43dad0]
push ecx
push edx
mov ecx, esi
call fcn.0040f860
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43dad0]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43dad1]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40ead4
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
mov ecx, dword [esp + 0x20]
mov ebx, 0xd
push ebx
mov ecx, dword [ecx]
call fcn.00411650
push ebx
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40eb9b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40eb9d
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov dword [esi + 0x11c], ebp
mov ecx, 3
mov dword [esi + 0x120], ebp
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, ebx
jl 0x40ebc8
mov edx, dword [esi + 0x11c]
add edx, ecx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 9
jle 0x40ebc2
mov dword [esi + 0x11c], 1
mov edi, 0xa
jmp 0x40ec20
xor ebp, ebp
mov dword [esi + 0x120], ebp
mov eax, dword [esi + 0x120]
mov ebp, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + ebp + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, ebx
jl 0x40ec26
mov edx, dword [esi + 0x11c]
add edx, ecx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, edi
jle 0x40ec1e
mov dword [esi + 0x11c], 2
xor ebp, ebp
mov dword [esi + 0x120], ebp
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + str.234567890JQKAFZ]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, ebx
jl 0x40ec7c
mov edx, dword [esi + 0x11c]
add edx, ecx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 0xb
jle 0x40ec76
mov cl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf6], cl
mov dl, byte [0x43d6f1]
mov byte [esi + 0xf5], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf4], al
mov cl, byte [0x43d6f2]
mov byte [esi + 0x106], cl
mov dl, byte [0x43d6f2]
mov byte [esi + 0x105], dl
mov al, byte [0x43d6f2]
cmp edi, ebp
mov byte [esi + 0x104], al
mov dword [esi + 0x128], ebp
jbe 0x40ed4d
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx eax, byte [ebx + ecx]
shl eax, 1
mov ecx, esi
mov dl, byte [eax + 0x43d989]
mov al, byte [eax + 0x43d988]
push edx
push eax
call fcn.0040f7a0
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40ed19
mov ecx, dword [esp + 0x24]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
lea eax, [esi + 0x12c]
push eax
call fcn.00421cab
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
call fcn.00411680
jmp case.0x40ee44.510
mov ebx, dword [esp + 0x18]
test ebx, ebx
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40edfe
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x24], 4
je 0x40edb9
mov eax, dword [esi + 0x128]
movsx eax, byte [edi + eax]
shl eax, 1
mov cl, byte [eax + 0x43d989]
mov dl, byte [eax + 0x43d988]
push ecx
push edx
mov ecx, esi
call fcn.0040f7a0
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d988]
mov ecx, ebp
push edx
call fcn.0042215e
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
mov dl, byte [ecx*2 + 0x43d989]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, ebx
jb 0x40ed91
mov edi, dword [esp + 0x24]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00411680
cmp edi, 4
jne case.0x40ee44.510
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
lea eax, [ebx - 0x1f8]
cmp eax, 0x62
ja case.0x40ee44.510
xor ecx, ecx
mov cl, byte [eax + 0x40f4b0]
jmp dword [ecx*4 + 0x40f494]
mov ebp, dword [esp + 0x20]
push 7
mov ecx, dword [ebp]
call fcn.00411650
push 7
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40ee74
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40ee76
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x3c
mov eax, 0x20202020
lea edi, [esi + 0x24]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
mov edx, eax
mov al, byte [eax + 0x43d6e4]
shl edx, 4
add edx, esi
mov byte [edx + edi + 0x24], al
mov edx, dword [esi + 0x120]
inc edx
mov eax, edx
mov dword [esi + 0x120], edx
cmp eax, 0xd
jl 0x40ee9c
mov edx, dword [esi + 0x11c]
inc edx
mov eax, edx
mov dword [esi + 0x11c], edx
cmp eax, 0x10
jl 0x40ee96
mov cl, byte [0x43d6f1]
mov edi, dword [esp + 0x18]
mov byte [esi + 0xf7], cl
mov dl, byte [0x43d6f1]
mov byte [esi + 0xf6], dl
mov al, byte [0x43d6f1]
mov byte [esi + 0xf5], al
mov cl, byte [0x43d6f1]
mov byte [esi + 0xf4], cl
mov dl, byte [0x43d6f2]
mov byte [esi + 0x107], dl
mov al, byte [0x43d6f2]
mov ebx, dword [esp + 0x14]
mov byte [esi + 0x106], al
mov cl, byte [0x43d6f2]
mov byte [esi + 0x105], cl
mov dl, byte [0x43d6f2]
test edi, edi
mov byte [esi + 0x104], dl
mov dword [esi + 0x128], 0
jbe 0x40ef87
mov eax, dword [esi + 0x128]
movsx ecx, byte [ebx + eax]
movsx edx, byte [ecx + 0x43d734]
mov ecx, esi
mov al, byte [edx + 0x43d6e4]
push eax
call fcn.0040f670
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40ef55
add ebx, 0x64
lea ecx, [esi + 0x114]
mov edx, dword [ebx]
mov dword [ecx], edx
mov ax, word [ebx + 4]
mov word [ecx + 4], ax
mov ecx, dword [esp + 0x24]
push ecx
push ecx
lea eax, [esi + 0x12c]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
cmp dword [esp + 0x18], edi
je case.0x40ca9e.1
mov edi, dword [esp + 0x14]
lea eax, [esi + 0x114]
mov ebx, dword [esp + 0x24]
lea edx, [edi + 0x64]
mov ecx, dword [edi + 0x64]
mov dword [eax], ecx
mov dx, word [edx + 4]
mov dword [esi + 0x128], 0
mov word [eax + 4], dx
mov eax, dword [esp + 0x18]
test eax, eax
jbe 0x40f050
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
movsx edx, byte [ecx + 0x43d734]
mov ecx, ebp
mov al, byte [edx + 0x43d6e4]
push eax
call fcn.0042215e
cmp ebx, 4
je 0x40f039
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
movsx eax, byte [edx + 0x43d734]
mov cl, byte [eax + 0x43d6e4]
push ecx
mov ecx, esi
call fcn.0040f670
mov ecx, dword [esi + 0x128]
mov edx, dword [esp + 0x18]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edx
jb 0x40eff6
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
jmp 0x40f2d6
mov ebp, dword [esp + 0x20]
push 1
mov ecx, dword [ebp]
call fcn.00411650
push 1
mov ecx, esi
call fcn.0040f790
call fcn.00425298
cmp eax, edi
je 0x40f086
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x40f088
xor eax, eax
push 1
mov ecx, eax
call fcn.00425c43
mov ecx, 0x1e
mov eax, 0x20202020
lea edi, [esi + 0x24]
mov edx, 4
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], ecx
mov eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x11c]
mov edi, eax
mov al, byte [eax + 0x43d6e4]
shl edi, 4
add edi, esi
mov byte [edi + ebx + 0x24], al
mov edi, dword [esi + 0x120]
inc edi
mov eax, edi
mov dword [esi + 0x120], edi
cmp eax, 0xd
jl 0x40f0b3
mov edi, dword [esi + 0x11c]
inc edi
mov eax, edi
mov dword [esi + 0x11c], edi
cmp eax, edx
jl 0x40f0ad
mov edi, dword [esp + 0x18]
mov dword [esi + 0x128], ecx
cmp edi, ecx
jbe 0x40f13b
mov ebx, dword [esp + 0x14]
mov ecx, dword [esi + 0x128]
movsx edx, byte [ebx + ecx]
movsx eax, byte [edx + 0x43d734]
mov cl, byte [eax + str.4567890JQKA23FZ]
push ecx
mov ecx, esi
call fcn.0040f630
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40f109
mov edx, dword [esp + 0x24]
lea eax, [esi + 0x12c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00421cab
mov ecx, dword [ebp]
jmp 0x40f2e2
mov eax, dword [esp + 0x18]
cmp eax, edi
je case.0x40ca9e.1
mov ebx, dword [esp + 0x24]
mov dword [esi + 0x128], 0
test eax, eax
jbe 0x40f1d7
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x128]
movsx ecx, byte [edi + eax]
movsx edx, byte [ecx + 0x43d734]
mov ecx, ebp
mov al, byte [edx + str.4567890JQKA23FZ]
push eax
call fcn.0042215e
cmp ebx, 4
je 0x40f1c0
mov ecx, dword [esi + 0x128]
movsx edx, byte [edi + ecx]
movsx eax, byte [edx + 0x43d734]
mov cl, byte [eax + str.4567890JQKA23FZ]
push ecx
mov ecx, esi
call fcn.0040f630
mov ecx, dword [esi + 0x128]
mov edx, dword [esp + 0x18]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edx
jb 0x40f17d
mov eax, dword [ebp]
cmp dword [eax - 8], 4
jle 0x40f1e8
push ebp
mov ecx, esi
call fcn.0040f6f0
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
jmp 0x40d2cd
mov edi, dword [esp + 0x18]
test edi, edi
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40f244
mov ebx, dword [esp + 0x14]
mov edx, dword [esi + 0x128]
movsx eax, byte [ebx + edx]
movsx ecx, byte [eax + 0x43d734]
mov dl, byte [ecx + 0x43d6e4]
mov ecx, ebp
push edx
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40f212
mov eax, dword [ebp]
cmp dword [eax - 8], 4
jle 0x40f255
push ebp
mov ecx, esi
call fcn.0040f6f0
mov ecx, dword [esp + 0x24]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
jmp 0x40f2e2
mov edi, dword [esp + 0x18]
test edi, edi
je case.0x40ca9e.1
mov dword [esi + 0x128], 0
jbe 0x40f2b9
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x128]
movsx ecx, byte [ebx + eax]
movsx edx, byte [ecx + 0x43d734]
mov ecx, ebp
mov al, byte [edx + 0x43d6e4]
push eax
call fcn.0042215e
mov ecx, dword [esi + 0x128]
inc ecx
mov eax, ecx
mov dword [esi + 0x128], ecx
cmp eax, edi
jb 0x40f287
mov ecx, dword [ebp]
cmp dword [ecx - 8], 4
jle 0x40f2ca
push ebp
mov ecx, esi
call fcn.0040f6f0
mov edx, dword [esp + 0x24]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.00421cab
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
call fcn.00410c70
mov ecx, esi
call fcn.0040f520
mov ecx, esi
call fcn.0040c3b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x14