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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x154
push ebx
push esi
push edi
mov dword [esp + 0x10], ecx
call fcn.0040fa30
lea eax, [esp + 0x108]
mov edx, 2
or esi, 0xffffffff
jmp 0x4112b0
mov ecx, 5
mov dword [eax + 4], esi
mov dword [eax], esi
add eax, 8
sub ecx, 1
jne 0x4112b5
sub edx, 1
jne 0x4112b0
mov ebx, dword [ebp + 8]
xor edi, edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], edi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], edi
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], edi
mov dword [esp + 0xfc], edi
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], edi
mov dword [esp + 0x14], edi
mov byte [esp + 0x33], 1
mov byte [esp + 0x32], 0
cmp ebx, 0x11
ja case.default.0x411c8b
movzx eax, byte [ebx + 0x412794]
jmp dword [eax*4 + 0x412770]
push 0x34
lea ecx, [esp + 0xa4]
push edi
push ecx
mov byte [esp + 0x3f], 0
mov byte [esp + 0x1b], 0
call fcn.0042cab0
add esp, 0xc
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x670]
or ebx, 0xffffffff
or esi, ebx
test eax, eax
jle 0x411400
cmp eax, 0x34
jg 0x411400
mov esi, eax
call fcn.0042e980
cdq
idiv esi
mov eax, dword [edi + 0x66c]
lea ecx, [esi - 1]
mov dword [edi + 0x670], ecx
mov edi, dword [eax + ecx*8]
mov ebx, dword [eax + edx*8]
mov esi, dword [eax + edx*8 + 4]
mov dword [eax + edx*8], edi
mov ecx, dword [eax + ecx*8 + 4]
mov dword [eax + edx*8 + 4], ecx
cmp dword [esp + ebx*4 + 0x78], 3
lea edi, [esp + ebx*4 + 0x78]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x34], edi
jge 0x41151b
mov edx, dword [esp + esi*4 + 0xd4]
cmp edx, 2
lea eax, [esp + esi*4 + 0xd4]
mov dword [esp + 0x38], eax
jge 0x41151b
cmp edx, 1
jne 0x411451
cmp dword [esp + 0x18], 0
je 0x41151b
cmp edx, edx
jne 0x411451
cmp esi, 8
jg 0x41151b
cmp edx, edx
jl 0x41145e
cmp byte [esp + 0xf], 0
jne 0x41151b
cmp edx, 1
jne 0x411496
mov ecx, dword [esp + 0x14]
cmp ecx, 5
jl 0x411496
xor eax, eax
test ecx, ecx
jl 0x411496
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea ecx, [esp + ecx*8 + 0x10c]
cmp dword [ecx], esi
je 0x41151b
inc eax
add ecx, 8
cmp eax, dword [esp + 0x14]
jle 0x411480
mov edi, dword [esp + 0x34]
mov ecx, 1
xor eax, eax
lea ecx, [ecx]
test eax, eax
jle 0x4114c5
cmp dword [esp + eax*4 + 0x9c], 1
jl 0x41159a
cmp dword [esp + eax*4 + 0xa0], 1
jge 0x4114c4
cmp esi, eax
jne 0x41159a
inc ecx
cmp ecx, 3
jge 0x41151b
inc eax
cmp eax, 0xd
jl 0x4114a0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc dword [esp + esi*4 + 0xa0]
inc dword [esp + 0x14]
lea eax, [eax + ecx*4]
add eax, ecx
mov ecx, dword [esp + 0x38]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + eax + 0x10c], esi
mov dword [esp + eax + 0x108], ebx
lea eax, [esp + esi*4 + 0xa0]
lea eax, [edx + 1]
mov dword [ecx], eax
mov ecx, dword [edi]
inc ecx
cmp eax, 2
mov dword [edi], ecx
jl 0x41151b
mov byte [esp + 0xf], 1
mov eax, 5
cmp dword [esp + 0x14], eax
jge 0x4115ad
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x670], eax
jg 0x4113ba
xor esi, esi
push 0x34
lea eax, [esp + 0xd8]
push esi
push eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
call fcn.0042cab0
xor eax, eax
push 0x34
lea ecx, [esp + 0xb0]
push esi
push ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
call fcn.0042cab0
mov ecx, dword [esp + 0x28]
add esp, 0x18
call fcn.0040fa30
jmp 0x4113ba
cmp ecx, 5
jge 0x4114c5
mov ecx, 1
jmp 0x4114ca
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 2
mov dword [esp + 0x18], eax
jl 0x4113b2
xor edi, edi
jmp case.default.0x411c8b
call fcn.0042e980
and eax, 0x80000003
jns 0x4115d7
dec eax
or eax, 0xfffffffc
inc eax
add eax, 9
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x14], 2
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
mov ebx, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x1c], esi
call fcn.0042e980
cdq
mov ecx, 7
idiv ecx
cmp byte [ebx + 0x9a0], 0
mov dword [esp + 0x20], edx
je 0x41162c
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
mov dword [esp + 0x20], edx
cmp esi, edx
je 0x411601
cmp edx, 5
jl case.default.0x411c8b
mov byte [esp + 0x32], 1
jmp case.default.0x411c8b
mov dword [esp + 0x14], 4
call fcn.0042e980
cdq
mov ecx, 0xd
idiv ecx
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 0x9a0], 0
mov edi, edx
je 0x411688
call fcn.00428100
cmp eax, 0x64
jge 0x411688
call fcn.0042e980
mov edi, eax
and edi, 0x80000003
jns 0x411685
dec edi
or edi, 0xfffffffc
inc edi
add edi, 9
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], edi
call fcn.0042e980
cdq
mov ecx, 0xd
idiv ecx
cmp byte [ebx + 0x9a0], 0
mov esi, edx
je 0x4116c9
call fcn.00428100
cmp eax, 0x64
jge 0x4116c9
call fcn.0042e980
mov esi, eax
and esi, 0x80000003
jns 0x4116c6
dec esi
or esi, 0xfffffffc
inc esi
add esi, 9
cmp esi, edi
je 0x411690
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], esi
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
xor bl, bl
mov dword [esp + 0x1c], edx
call fcn.0042e980
cdq
mov ecx, 0x64
idiv ecx
mov edi, dword [esp + 0x10]
cmp edx, 0x3c
jge 0x411708
cmp byte [edi + 0x9a0], bl
jne 0x411708
mov bl, 1
mov esi, 1
lea ecx, [ecx]
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
test bl, bl
je 0x411747
cmp esi, 1
jle 0x411747
cmp byte [edi + 0x9a0], 0
jne 0x411747
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 5
mov dword [esp + esi*4 + 0x1c], edx
xor eax, eax
test esi, esi
jle 0x41175c
mov ecx, dword [esp + esi*4 + 0x1c]
cmp ecx, dword [esp + eax*4 + 0x1c]
je 0x411710
inc eax
cmp eax, esi
jl 0x411751
inc esi
cmp esi, 4
jl 0x411710
xor edi, edi
jmp case.default.0x411c8b
mov dword [esp + 0x14], 3
call fcn.0042e980
cdq
mov ecx, 9
idiv ecx
cmp ebx, 4
je 0x41179d
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x9a0], 0
je 0x41187e
cmp ebx, 5
je 0x411887
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 9
cmp edx, 9
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], edx
mov byte [esp + 0xf], 0
jl 0x4117df
call fcn.0042e980
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x28
jge 0x4117df
mov byte [esp + 0x32], 1
mov byte [esp + 0xf], 1
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
xor bl, bl
mov dword [esp + 0x1c], edx
call fcn.0042e980
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x3c
jge 0x411812
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], bl
jne 0x411812
mov bl, 1
mov esi, 1
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
test bl, bl
je 0x411831
cmp esi, 1
jg 0x41184a
cmp byte [esp + 0xf], 0
je 0x41185e
cmp esi, 1
jl 0x41185e
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], 0
jne 0x41185e
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 5
mov dword [esp + esi*4 + 0x1c], edx
xor eax, eax
cmp esi, edi
jle 0x411873
mov ecx, dword [esp + esi*4 + 0x1c]
cmp ecx, dword [esp + eax*4 + 0x1c]
je 0x411817
inc eax
cmp eax, esi
jl 0x411868
inc esi
cmp esi, 3
jl 0x411817
jmp case.default.0x411c8b
cmp ebx, 5
jne 0x4117ad
mov edx, 0xc
jmp 0x4117ad
mov dword [esp + 0x14], 5
call fcn.0042e980
and eax, 0x80000007
jns 0x4118aa
dec eax
or eax, 0xfffffff8
inc eax
cmp ebx, 7
jne 0x4118b3
xor eax, eax
jmp 0x4118ba
cmp ebx, 8
jne 0x4118ba
mov eax, ebx
lea edx, [eax + 1]
mov dword [esp + 0x48], edx
lea ecx, [eax + 2]
lea edx, [eax + 3]
mov dword [esp + 0x40], eax
add eax, 4
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], eax
cmp ebx, 7
jne 0x4118e7
mov dword [esp + 0x60], 0xc
mov byte [esp + 0xf], 0
or ebx, 0xffffffff
call fcn.0042e980
cdq
mov ecx, 6
idiv ecx
mov dword [esp + 0x1c], edx
call fcn.0042e980
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x46
jge 0x41191a
lea ebx, [ecx - 0x60]
mov byte [esp + 0xf], 1
mov esi, 1
nop
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
cmp dword [esp + 0x1c], ecx
jge 0x411946
cmp byte [esp + 0xf], 0
je 0x411946
cmp esi, ebx
jne 0x411946
mov dword [esp + esi*4 + 0x1c], ecx
xor eax, eax
cmp esi, edi
jle 0x41195b
mov ecx, dword [esp + esi*4 + 0x1c]
cmp ecx, dword [esp + eax*4 + 0x1c]
je 0x411920
inc eax
cmp eax, esi
jl 0x411950
inc esi
cmp esi, 5
jl 0x411920
jmp case.default.0x411c8b
mov dword [esp + 0x14], 5
call fcn.0042e980
and eax, 0x80000003
jns 0x41197f
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
mov dword [esp + 0x40], edx
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, ecx
mov dword [esp + 0x48], edx
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 6
mov dword [esp + 0x50], edx
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 9
mov dword [esp + 0x58], edx
call fcn.0042e980
cdq
mov ecx, 0xd
idiv ecx
xor eax, eax
cmp edx, dword [esp + eax*8 + 0x40]
je 0x4119e3
inc eax
cmp eax, 5
jl 0x4119f2
mov dword [esp + 0x60], edx
xor bl, bl
call fcn.0042e980
cdq
mov ecx, 6
idiv ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], bl
jne 0x411a23
mov bl, 1
mov esi, 1
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
cmp dword [esp + 0x1c], ecx
jge 0x411a4c
test bl, bl
je 0x411a4c
cmp esi, 4
jne 0x411a4c
mov dword [esp + 0x2c], ecx
xor eax, eax
cmp esi, edi
jle 0x411a61
mov ecx, dword [esp + esi*4 + 0x1c]
cmp ecx, dword [esp + eax*4 + 0x1c]
je 0x411a28
inc eax
cmp eax, esi
jl 0x411a56
inc esi
cmp esi, 5
jl 0x411a28
jmp case.default.0x411c8b
mov ebx, 5
mov dword [esp + 0x14], ebx
call fcn.0042e980
cdq
mov ecx, 0xd
idiv ecx
mov esi, edx
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], 0
je 0x411aa8
call fcn.0042e980
mov esi, eax
and esi, 0x80000003
jns 0x411aa5
dec esi
or esi, 0xfffffffc
inc esi
add esi, 9
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], esi
call fcn.0042e980
cdq
mov ecx, 0xd
idiv ecx
cmp edx, esi
je 0x411ab4
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], edx
call fcn.0042e980
cdq
mov ecx, ebx
idiv ecx
mov dword [esp + 0x1c], edx
call fcn.0042e980
and eax, 0x80000003
jns 0x411aec
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esp + 0x64], eax
cmp eax, 3
jne 0x411af9
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x10]
xor bl, bl
cmp byte [edx + 0x9a0], bl
jne 0x411b09
mov bl, 1
mov esi, 1
lea edi, [esi + 4]
cmp dword [esp + 0x64], 3
ja case.default.0x411b20
mov eax, dword [esp + 0x64]
jmp dword [eax*4 + 0x4127a8]
call fcn.0042e980
cdq
mov ecx, edi
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
test bl, bl
je case.default.0x411b20
cmp esi, 1
jle case.default.0x411b20
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], 0
jne case.default.0x411b20
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, edi
mov dword [esp + esi*4 + 0x1c], edx
jmp case.default.0x411b20
call fcn.0042e980
cdq
mov ecx, edi
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
test bl, bl
je case.default.0x411b20
cmp esi, 2
jne case.default.0x411b20
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], 0
jne case.default.0x411b20
mov dword [esp + 0x24], edi
jmp case.default.0x411b20
call fcn.0042e980
cdq
mov ecx, edi
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
test bl, bl
je case.default.0x411b20
cmp esi, 2
jle case.default.0x411b20
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], 0
jne case.default.0x411b20
call fcn.0042e980
and eax, 0x80000001
jns 0x411bd6
dec eax
or eax, 0xfffffffe
inc eax
add eax, edi
jmp 0x411c01
call fcn.0042e980
cdq
mov ecx, edi
idiv ecx
mov dword [esp + esi*4 + 0x1c], edx
test bl, bl
je case.default.0x411b20
cmp esi, 2
jg case.default.0x411b20
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x9a0], 0
jne case.default.0x411b20
lea eax, [esi + 5]
mov dword [esp + esi*4 + 0x1c], eax
xor eax, eax
test esi, esi
jle 0x411c1f
mov ecx, dword [esp + esi*4 + 0x1c]
nop
cmp ecx, dword [esp + eax*4 + 0x1c]
je 0x411b11
inc eax
cmp eax, esi
jl 0x411c10
inc esi
cmp esi, edi
jl 0x411b11
xor edi, edi
jmp case.default.0x411c8b
mov dword [esp + 0x14], 4
call fcn.0042e980
cdq
mov ecx, 9
idiv ecx
cmp ebx, 0xc
jne 0x411c5b
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 9
jmp 0x411c65
cmp ebx, 0xd
jne 0x411c65
mov edx, 0xc
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], edx
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
ja case.default.0x411c8b
jmp dword [edx*4 + 0x4127b8]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], ecx
jmp case.default.0x411c8b
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 6
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], 2
jmp case.default.0x411c8b
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 6
mov dword [esp + 0x28], 2
jmp case.default.0x411c8b
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 6
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edi
jmp case.default.0x411c8b
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], 7
jmp case.default.0x411c8b
call fcn.0042e980
mov esi, eax
and esi, 0x80000003
jns 0x411d43
dec esi
or esi, 0xfffffffc
inc esi
mov dword [esp + 0x68], esi
cmp ebx, 0x11
jne 0x411d57
mov esi, 3
mov dword [esp + 0x68], esi
jmp 0x411d7d
cmp ebx, 0x10
jne 0x411d7d
lea esp, [esp]
call fcn.0042e980
mov esi, eax
and esi, 0x80000003
jns 0x411d74
dec esi
or esi, 0xfffffffc
inc esi
mov dword [esp + 0x68], esi
cmp esi, 3
je 0x411d60
mov dword [esp + 0x14], 5
call fcn.0042e980
cmp byte [ebp + 0xc], 0
cdq
jne 0x411dff
mov ecx, 7
idiv ecx
inc edx
cmp ebx, 0xf
jne 0x411da2
xor edx, edx
jmp 0x411db1
cmp ebx, 0x10
je 0x411dac
cmp ebx, 0x11
jne 0x411db1
mov edx, 8
lea eax, [edx + 1]
mov dword [esp + 0x48], eax
lea ecx, [edx + 2]
lea eax, [edx + 3]
mov dword [esp + 0x40], edx
add edx, 4
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], esi
cmp ebx, 0xf
jne case.default.0x411e38
mov dword [esp + 0x60], 0xc
mov dword [esp + 0x5c], esi
jmp case.default.0x411e38
mov ecx, 6
idiv ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], esi
lea eax, [edx + 1]
mov dword [esp + 0x48], eax
lea ecx, [edx + 2]
lea eax, [edx + 3]
mov dword [esp + 0x40], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], eax
cmp edx, 5
ja case.default.0x411e38
jmp dword [edx*4 + 0x4127cc]
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
add edx, 6
mov dword [esp + 0x60], edx
jmp case.default.0x411e38
call fcn.0042e980
cdq
mov ecx, 5
idiv ecx
add edx, 7
mov dword [esp + 0x60], edx
jmp case.default.0x411e38
call fcn.0042e980
and eax, 0x80000003
jns 0x411e82
dec eax
or eax, 0xfffffffc
inc eax
jne 0x411e8d
mov dword [esp + 0x60], edi
jmp case.default.0x411e38
call fcn.0042e980
and eax, 0x80000003
jns 0x411e9e
dec eax
or eax, 0xfffffffc
inc eax
add eax, 8
jmp 0x411f50
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
test edx, edx
jne 0x411ed0
call fcn.0042e980
and eax, 0x80000001
jns 0x411f50
dec eax
or eax, 0xfffffffe
jmp 0x411f4f
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
add edx, 9
mov dword [esp + 0x60], edx
jmp case.default.0x411e38
call fcn.0042e980
and eax, 0x80000001
jns 0x411ef7
dec eax
or eax, 0xfffffffe
inc eax
jne 0x411f0c
call fcn.0042e980
cdq
mov ecx, 3
idiv ecx
mov dword [esp + 0x60], edx
jmp case.default.0x411e38
call fcn.0042e980
and eax, 0x80000001
jns 0x411f1d
dec eax
or eax, 0xfffffffe
inc eax
add eax, 0xa
jmp 0x411f50
call fcn.0042e980
and eax, 0x80000003
jns 0x411f33
dec eax
or eax, 0xfffffffc
inc eax
jne 0x411f3f
mov dword [esp + 0x60], 0xb
jmp case.default.0x411e38
call fcn.0042e980
and eax, 0x80000003
jns 0x411f50
dec eax
or eax, 0xfffffffc
inc eax
mov dword [esp + 0x60], eax
call fcn.0042e980
cdq
mov ecx, 5
mov esi, ecx
idiv esi
mov eax, 4
cmp edx, eax
ja case.default.0x411c8b
jmp dword [edx*4 + 0x4127e4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
cmp byte [ebp + 0xc], 0
je case.default.0x411c8b
mov edx, dword [esp + 0x10]
mov dword [edx + 0x944], eax
jmp case.default.0x411c8b
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], eax
je case.default.0x411c8b
mov eax, dword [esp + 0x10]
mov dword [eax + 0x944], edi
jmp case.default.0x411c8b
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], eax
je case.default.0x411c8b
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x944], 1
jmp case.default.0x411c8b
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 1
jmp 0x411f97
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 1
je case.default.0x411c8b
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x944], eax
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x65c], 0
je 0x4120a1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 3
mov dword [esp + 0x2c], 4
cmp byte [esp + 0x33], 0
je 0x4125fe
cmp byte [ebp + 0xc], 0
jne 0x412604
xor eax, eax
push 0x34
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
lea eax, [esp + 0xa4]
push edi
push eax
call fcn.0042cab0
or eax, 0xffffffff
add esp, 0xc
cmp dword [ebp + 8], 0xe
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x38], eax
jl 0x41211a
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x38], edx
cmp dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
jle 0x4121ef
lea ebx, [esp + 0x3c]
lea esp, [esp]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push eax
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x78]
push edx
call fcn.004110c0
mov esi, dword [eax]
cmp dword [esp + esi*4 + 0x78], 2
mov edi, dword [eax + 4]
jle 0x41217f
mov eax, dword [ebp + 8]
cmp eax, 9
je 0x41217f
cmp eax, 0xe
jge 0x41217f
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push eax
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x78]
push edx
call fcn.004110c0
mov esi, dword [eax]
cmp dword [esp + esi*4 + 0x78], 2
mov edi, dword [eax + 4]
jg 0x412151
mov eax, dword [esp + 0x6c]
cmp eax, 0xffffffff
jne 0x41218e
mov dword [esp + 0x6c], edi
jmp 0x412196
cmp eax, edi
je 0x412196
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x1c]
cdq
mov ecx, 5
idiv ecx
lea ecx, [edx + eax*4]
add ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + ecx + 0x10c], edi
mov dword [esp + ecx + 0x108], esi
test eax, eax
jne 0x4121d9
inc dword [esp + esi*4 + 0x78]
inc dword [esp + edi*4 + 0xa0]
lea esi, [esp + esi*4 + 0x78]
lea edi, [esp + edi*4 + 0xa0]
mov eax, dword [esp + 0x18]
inc eax
add ebx, 8
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jl 0x412130
xor esi, esi
mov dword [esp + 0x18], esi
or eax, 0xffffffff
xor edx, edx
lea ecx, [esi + esi*4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x94]
add ecx, edx
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x8c], ecx
cmp dword [esp + ecx + 0x10c], eax
je 0x412234
cmp dword [esp + ecx + 0x108], eax
jne 0x4125e0
cmp dword [ebp + 8], 0xe
mov byte [esp + 0xf], 1
jge 0x412264
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x6c]
push edx
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x164]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0040f930
mov edx, dword [eax]
mov dword [esp + 0x70], edx
jmp 0x41228a
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.0040f930
mov ecx, dword [eax]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x18], 0
mov ebx, dword [eax + 4]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x34], 0
jl 0x41256e
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x38]
lea edi, [esp + 0x10c]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
test eax, eax
je 0x4122d1
cmp eax, 1
jne 0x412347
cmp dword [esp + 0x14], 2
jge 0x412347
cmp ecx, 0xf
je 0x41232a
cmp ecx, 0xe
jl 0x412347
cmp ebx, esi
jl 0x4122e7
cmp ebx, edx
jle 0x412575
cmp byte [esp + 0xf], 0
je 0x412575
test esi, esi
jle 0x412309
lea eax, [esi - 1]
cmp eax, ebx
je 0x412304
lea ecx, [esi - 2]
cmp ecx, ebx
jne 0x412309
mov byte [esp + 0xf], 0
test edx, edx
jle 0x412347
cmp edx, 0xc
je 0x412347
lea eax, [edx + 1]
cmp eax, ebx
je 0x412575
lea ecx, [edx + 2]
cmp ecx, ebx
je 0x412575
jmp 0x412347
cmp byte [esp + 0xf], 0
je 0x412575
cmp ebx, 0xc
je 0x412575
cmp ebx, 5
jle 0x412575
cmp byte [esp + 0xf], 0
je 0x412575
xor eax, eax
mov ecx, edi
cmp dword [ecx], ebx
je 0x412575
inc eax
add ecx, 8
cmp eax, 5
jl 0x412356
cmp byte [esp + 0xf], 0
je 0x412575
mov eax, dword [esp + 0x34]
inc eax
add edi, 0x28
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
jle 0x4122b6
cmp dword [esp + 0x18], 0
jne 0x41256e
cmp byte [esp + 0x32], 0
je 0x4123a5
cmp ebx, dword [esp + 0x6c]
jle 0x4123a5
mov byte [esp + 0xf], 0
mov edx, dword [esp + 0x70]
cmp dword [esp + edx*4 + 0x78], 2
mov eax, dword [ebp + 8]
jl 0x4123c2
cmp eax, 9
je 0x4123c2
cmp eax, 0xe
jge 0x4123c2
mov byte [esp + 0xf], 0
cmp eax, 6
jl 0x41243e
cmp eax, 9
jl 0x4123d1
cmp eax, 0xe
jl 0x41243e
cmp eax, 8
jg 0x412427
mov edx, dword [esp + 0x60]
inc edx
cmp eax, 7
jne 0x4123e5
mov edx, dword [esp + 0x58]
inc edx
mov ecx, dword [esp + 0x40]
lea eax, [ecx - 1]
add ecx, 0xfffffffe
test eax, eax
jge 0x4123f8
mov eax, 0xc
test ecx, ecx
jge 0x412401
mov ecx, 0xc
cmp ebx, edx
je 0x412575
inc edx
cmp ebx, edx
je 0x412575
cmp ebx, eax
je 0x412575
cmp ebx, ecx
jne 0x41256e
jmp 0x412575
cmp eax, 0xe
jne 0x41256e
cmp ebx, 0xc
jne 0x41256e
jmp 0x412575
mov edx, 1
xor eax, eax
test eax, eax
jle 0x412485
mov ecx, dword [esp + eax*4 + 0x9c]
mov esi, 1
cmp ecx, esi
jl 0x412466
cmp dword [esp + eax*4 + 0xa0], esi
jge 0x412483
cmp ebx, eax
je 0x412483
cmp dword [esp + eax*4 + 0xa0], esi
jl 0x41247a
cmp ecx, esi
jge 0x412483
lea ecx, [eax - 1]
cmp ebx, ecx
je 0x412483
cmp edx, 5
jge 0x412485
mov edx, esi
jmp 0x41248e
add edx, esi
cmp edx, 3
jge 0x412575
inc eax
cmp eax, 0xd
jl 0x412445
cmp byte [esp + 0xf], 0
je 0x412575
mov eax, 0xc
lea edx, [esp + 0xd0]
jmp 0x4124b0
inc dword [esp + ebx*4 + 0xa0]
mov edi, dword [esp + ebx*4 + 0xa0]
lea esi, [eax - 0xd]
xor ecx, ecx
test esi, esi
jl 0x4124cc
cmp dword [edx - 0x34], ecx
jmp 0x4124d8
test eax, eax
jl 0x4124df
cmp eax, 0xd
jge 0x4124df
cmp dword [edx], 0
jle 0x4124df
mov ecx, 1
lea esi, [eax - 0xb]
lea ebx, [esi - 1]
test ebx, ebx
jl 0x4124ef
cmp dword [edx - 0x30], 0
jmp 0x4124fb
test eax, eax
jl 0x4124fe
cmp eax, 0xd
jge 0x4124fe
cmp dword [edx], 0
jle 0x4124fe
inc ecx
test esi, esi
jl 0x412508
cmp dword [edx - 0x2c], 0
jmp 0x412514
test eax, eax
jl 0x412517
cmp eax, 0xd
jge 0x412517
cmp dword [edx], 0
jle 0x412517
inc ecx
lea ebx, [esi + 1]
test ebx, ebx
jl 0x412524
cmp dword [edx - 0x28], 0
jmp 0x412530
test eax, eax
jl 0x412533
cmp eax, 0xd
jge 0x412533
cmp dword [edx], 0
jle 0x412533
inc ecx
add esi, 2
js 0x41253e
cmp dword [edx - 0x24], 0
jmp 0x41254a
test eax, eax
jl 0x41254d
cmp eax, 0xd
jge 0x41254d
cmp dword [edx], 0
jle 0x41254d
inc ecx
mov ebx, dword [esp + 0x74]
dec edi
cmp ecx, 4
mov dword [esp + ebx*4 + 0xa0], edi
jge 0x412575
inc eax
lea ecx, [eax - 0xd]
add edx, 4
cmp ecx, 9
jl 0x4124b0
cmp byte [esp + 0xf], 0
jne 0x4125a2
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x670]
cmp eax, 0xa
jl 0x412597
cmp dword [ebp + 8], 0xe
jl 0x412234
cmp eax, 0xf
jg 0x412234
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esp + 0x18], 0
jne 0x4125bc
mov eax, dword [esp + 0x70]
inc dword [esp + ebx*4 + 0xa0]
inc dword [esp + eax*4 + 0x78]
lea eax, [esp + eax*4 + 0x78]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [esp + eax + 0x108], ecx
mov dword [esp + eax + 0x10c], ebx
or eax, 0xffffffff
inc edx
cmp edx, 5
mov dword [esp + 0x14], edx
jl 0x412208
inc esi
cmp esi, 2
mov dword [esp + 0x18], esi
jl 0x4121f8
jmp 0x41265c
cmp byte [ebp + 0xc], 0
je 0x41265c
xor esi, esi
cmp dword [esp + 0x14], edi
jle 0x41265c
lea esp, [esp]
mov edx, dword [esp + esi*8 + 0x40]
mov eax, dword [esp + esi*8 + 0x3c]
push edx
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004110c0
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [esp + esi*4 + 0x1c]
cdq
mov ecx, 5
idiv ecx
inc esi
lea ecx, [edx + eax*4]
add ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
cmp esi, dword [esp + 0x14]
mov dword [esp + ecx + 0x10c], ebx
mov dword [esp + ecx + 0x108], edi
jl 0x412610
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x10]
add esi, 0x7a0
lea edi, [esp + 0x108]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x38], 2
mov dword [esp + 0x34], 5
cmp dword [edi + 4], 0xffffffff
je 0x41269a
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esi], edx
mov dword [esi + 4], eax
jmp 0x4126bf
mov ecx, dword [esp + 0x108]
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
lea edx, [esp + 0xa4]
push edx
mov ecx, ebx
call fcn.0040f930
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov eax, 1
add edi, 8
add esi, 8
sub dword [esp + 0x34], eax
jne 0x412688
sub dword [esp + 0x38], eax
jne 0x412680
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], ecx
cmp dword [ecx + 4], 0
jl 0x4126f4
cmp dword [ecx], 0
jge 0x41274d
cmp dword [ebp + 8], 0xe
jl 0x412597
mov eax, dword [ebx + 0x670]
or esi, 0xffffffff
or edi, esi
test eax, eax
jle 0x412748
cmp eax, 0x34
jg 0x412748
mov esi, eax
call fcn.0042e980
cdq
idiv esi
mov eax, dword [ebx + 0x66c]
lea ecx, [esi - 1]
mov dword [ebx + 0x670], ecx
mov ebx, dword [eax + ecx*8]
mov esi, dword [eax + edx*8]
mov edi, dword [eax + edx*8 + 4]
mov dword [eax + edx*8], ebx
mov ecx, dword [eax + ecx*8 + 4]
mov ebx, dword [esp + 0x10]
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov eax, dword [esp + 0x34]
inc eax
add ecx, 8
cmp eax, 0xa
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
jl 0x4126e9
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc