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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10063461
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x180
push ebx
push esi
push edi
push ecx
push 0x12e1
mov edi, edx
mov dword [esp + 0xa4], ecx
push ecx
xor dl, dl
mov ecx, 0x3ce2
call fcn.10036112
add esp, 0xc
cmp byte [edi], 0x50
jne 0x100372b2
cmp byte [edi + 1], 0x4b
jne 0x100372b2
push dword [esp + 0x50]
movdqa xmm0, xmmword [0x100707d0]
lea eax, [esp + 0x154]
push eax
xor ebx, ebx
mov dword [esp + 0x14], 3
lea eax, [esp + 0x148]
mov dword [esp + 0xc8], ebx
push eax
push ebx
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd4], ebx
movdqu xmmword [esp + 0x150], xmm0
mov dword [esp + 0xd8], ebx
call fcn.10007962
mov dword [esp + 0x194], ebx
mov dword [esp + 0x10], 0x2b96ce02
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], 0xffffffeb
cmp dword [esp + 0xc], 0x11
jl 0x100367df
push 3
pop esi
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x100367c8
push dword [esp + 0x50]
movdqa xmm0, xmmword [0x100707f0]
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x138]
mov dword [esp + 0x98], ebx
push eax
push ebx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa4], ebx
movdqu xmmword [esp + 0x140], xmm0
mov dword [esp + 0xa8], ebx
call fcn.10007962
mov byte [esp + 0x194], 1
mov eax, dword [esp + 0x90]
mov dword [esp + 0x1c], eax
mov dword [eax + 8], ebx
mov dword [esp + 0x18], 1
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x1003679f
push 0x1b5d
push 0x68ce
push 0x6e84
push 1
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], 0xfffffffe
push 1
push eax
mov edx, 0x1f50
mov cl, 1
call fcn.100362f8
mov dword [esp + 0x28], esi
add esp, 0x18
cmp dword [esp + 0x10], ebx
jl 0x10036791
push 0x1edc
push 0x2c9f
lea eax, [esp + 0x3a]
mov byte [esp + 0x3a], bl
push eax
push 1
push 1
push 0x60a9
mov edx, 0x3bac
xor cl, cl
call fcn.100362f8
add esp, 0x18
mov byte [esp + 0x3b], bl
lea eax, [esp + 0x3b]
mov edx, 0x30e6
push eax
push ebx
push ecx
push 0x4543
mov ecx, 0x3bbb
call fcn.100364d8
add esp, 0x10
dec dword [esp + 0x10]
jns 0x1003673e
dec dword [esp + 0x18]
jns 0x100366ff
mov eax, dword [esp + 0x1c]
inc dword [eax + 8]
cmp dword [eax + 8], esi
jle 0x100366e9
lea ecx, [esp + 0x90]
mov byte [esp + 0x194], bl
call fcn.10004ee5
dec dword [esp + 0x14]
jns 0x1003668c
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x11
jge 0x10036676
or dword [esp + 0x194], 0xffffffff
lea ecx, [esp + 0xc0]
call fcn.10004ee5
push 2
pop esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x10], 0x20624039
mov dword [esp + 0x10], 0xfffffffc
cmp dword [esp + 0x10], 0xfffffff2
jge 0x10036a33
xor ecx, ecx
inc ecx
mov dword [esp + 0xc], 0xc0f8067e
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x1c], 0xde9ab5c2
mov dword [esp + 0x14], ebx
jmp 0x10036845
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x174], 0xff55e00f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10036832
mov dword [esp + 0xc], ebx
jmp 0x10036a1a
mov dword [esp + 0x18], 0x79c4185a
mov dword [esp + 0x1c], 0xd0176df7
mov dword [esp + 0x1c], 0xd0f065f4
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], ebx
jl 0x100369f4
push esi
lea ecx, [esp + 0xb8]
call fcn.10004e62
mov dword [esp + 0x194], esi
lea ecx, [esp + 0x118]
mov dword [esp + 0x1c], 0x643b8a27
push 4
call fcn.10004e62
mov byte [esp + 0x194], 3
mov dword [esp + 0x44], ebx
jmp 0x100368c8
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x44]
cmp dword [esp + 0x44], esi
jl 0x100368b2
lea eax, [esp + 0x44]
mov edx, 0x339e
push eax
push 1
lea eax, [esp + 0x120]
mov ecx, 0x67c7
push eax
push ebx
push 1
push 0x1287
call fcn.10036545
mov eax, dword [esp + 0xcc]
add esp, 0x18
mov dword [eax], 1
mov dword [esp + 0x1c], 0xb9193c1d
mov dword [esp + 0x1c], 0x667f5aee
mov dword [esp + 0x1c], 0x4151c8b9
mov dword [esp + 0x88], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x1003693d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x78], 0xfffffff7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003692d
mov dword [esp + 0x78], ebx
jmp 0x10036992
lea eax, [esp + 0x88]
mov dword [esp + 0x8c], 0xd2f38d9
push eax
lea eax, [esp + 0x90]
mov dword [esp + 0x20], 0xdffbe584
push eax
push ecx
push ecx
mov dword [esp + 0x2c], 4
mov cl, 1
mov dword [esp + 0x2c], 0xfffffff6
push 0x1651
call fcn.100363b1
add esp, 0x14
inc dword [esp + 0x78]
cmp dword [esp + 0x78], 1
jle 0x1003694a
mov eax, dword [esp + 0xb4]
dec dword [eax]
jns 0x10036904
push 0x4792
push 0x46b
sub esp, 0xc
mov byte [esp + 0x4d], bl
lea ecx, [esp + 0x4d]
push 1
call fcn.10036481
add esp, 0x18
lea ecx, [esp + 0x118]
call fcn.10004ee5
or dword [esp + 0x194], 0xffffffff
lea ecx, [esp + 0xb4]
call fcn.10004ee5
dec dword [esp + 0x18]
jns 0x1003687a
xor ecx, ecx
inc ecx
push ecx
push 0x263
push ecx
push ecx
push 0x5fe3
mov edx, 0x7959
mov ecx, 0x5658
call fcn.10036406
add esp, 0x14
xor ecx, ecx
inc dword [esp + 0xc]
inc ecx
cmp dword [esp + 0xc], ecx
jle 0x10036854
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff2
jl 0x10036818
mov al, byte [edi + 2]
lea ecx, [esp + 0x10c]
push 3
mov byte [esp + 0x27], al
pop eax
push eax
mov dword [esp + 0x4c], eax
call fcn.10004e62
push esi
lea ecx, [esp + 0xf4]
mov dword [esp + 0x198], 4
call fcn.10004e62
lea eax, [esp + 0x10c]
mov byte [esp + 0x194], 5
push eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x44], 0xc5416513
push eax
push 0x658
push 1
push ebx
push 0x21ef
mov edx, 0x70dc
mov cl, 1
call fcn.100362f8
add esp, 0x14
lea eax, [esp + 0xa8]
mov dl, 1
push eax
push ecx
lea ecx, [esp + 0xfc]
call fcn.10036112
add esp, 0xc
lea eax, [esp + 0x40]
mov ecx, 0x16b9
push eax
lea eax, [esp + 0xf4]
push eax
sub esp, 0xc
push ebx
call fcn.10036481
add esp, 0x18
mov dword [esp + 0x40], 0xa
jmp 0x10036b40
push esi
lea ecx, [esp + 0xdc]
call fcn.10004e62
push 0x6f39
lea eax, [esp + 0xdc]
mov byte [esp + 0x198], 6
push eax
lea eax, [esp + 0x12c]
push eax
push 0x58e1
push ebx
call fcn.100362a3
mov eax, dword [esp + 0xec]
lea ecx, [esp + 0xec]
add esp, 0x14
cmp dword [eax + 4], ebx
jne 0x10036b49
mov byte [esp + 0x194], 5
call fcn.10004ee5
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 0x1c
jg 0x10036ae4
jmp 0x10036b4e
call fcn.10004ee5
lea ecx, [esp + 0xf0]
call fcn.10004ee5
or dword [esp + 0x194], 0xffffffff
lea ecx, [esp + 0x10c]
call fcn.10004ee5
mov al, byte [edi + 3]
lea edx, [esp + 0x48]
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x23]
push ecx
add eax, 4
push ecx
push 0x3d59
mov cl, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], eax
call fcn.10036468
mov dword [esp + 0x18], 0x38462751
xor ecx, ecx
mov dword [esp + 0x38], ebx
inc ecx
mov dword [esp + 0x24], 0xfffffff7
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je 0x10036bdf
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x10036c25
push 0x18e7
push ebx
push 0x11b5
push ecx
push ecx
push 0xf87
mov edx, 0x5032
mov ecx, 0x4714
call fcn.10036545
xor ecx, ecx
add esp, 0x18
inc ecx
push ecx
lea eax, [esp + 0x37]
mov edx, 0x6e64
push eax
push ecx
push ebx
push 0x136f
lea ecx, [esp + 0x5c]
call fcn.10036406
xor ecx, ecx
mov dword [esp + 0x20], ebx
add esp, 0x14
inc ecx
jmp 0x10036c58
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x24], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x10036c4c
mov dword [esp + 0xc], ebx
jmp 0x10036c74
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x34], 0x251d69f4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x10036c64
mov dword [esp + 0x24], ebx
jmp 0x10036cb0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], ebx
jmp 0x10036c9a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x34], 0x91f782a1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10036c8a
push ecx
push ecx
call fcn.1003626b
dec dword [esp + 0x2c]
pop ecx
pop ecx
push 1
pop ecx
cmp dword [esp + 0x24], 0xfffffffc
je 0x10036c80
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x34]
sub edx, 0xaa2d
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x34]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x34]
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
setg cl
mov dword [esp + 0x1c], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
setl cl
neg eax
add edx, ecx
xor ecx, ecx
neg edx
cmp eax, edx
setg cl
imul eax, ecx, 0xfff8
mov ecx, dword [esp + 0x28]
add eax, dword [esp + 0x34]
mov edx, dword [ecx + edi]
mov ecx, dword [ecx + edi + 0x14]
mov dword [esp + 0x24], eax
call fcn.1000ed2e
mov dword [esp + 0x4c], eax
lea edx, [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov ecx, 0x5fd0
push ebx
push 0x37c6
add eax, edi
push 1
mov dword [esp + 0x38], eax
lea eax, [ebp + 8]
push 1
push eax
call fcn.10036406
mov dword [esp + 0x20], 0xfffffff6
add esp, 0x14
mov dword [esp + 0x18], 0x41fd9d08
mov dword [esp + 0x10], ebx
jmp 0x10036d82
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x54], 0xf73838a1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10036d72
inc dword [esp + 0x54]
xor ecx, ecx
mov dword [esp + 0xc], ebx
inc ecx
jmp 0x10036e29
mov dword [esp + 0x1c], 0x7d96711d
mov dword [esp + 0x10], ebx
jmp 0x10036db6
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], 0x80849f84
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10036da6
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], ebx
jl 0x10036e25
mov dword [esp + 0x10], ebx
jmp 0x10036ddf
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x15c], 0x3d3b0cf5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10036dcc
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x54], ebx
je 0x10036dfc
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov edx, dword [esp + 0x18]
sub edx, eax
mov eax, dword [esp + 0xc]
cmp edx, eax
setne cl
mov dword [esp + 0x164], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x1c], ecx
dec dword [esp + 0x68]
jns 0x10036dc6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jle 0x10036d98
push ecx
push 0x2fde
push 0x9d3
push ecx
lea eax, [esp + 0x5c]
xor dl, dl
push eax
call fcn.10036504
mov ecx, dword [esp + 0x3c]
add esp, 0x14
mov eax, dword [ecx + edi]
mov dword [esp + 0xfc], eax
mov eax, dword [ecx + edi + 4]
mov dword [esp + 0x100], eax
mov eax, dword [ecx + edi + 8]
mov dword [esp + 0x104], eax
mov eax, dword [ecx + edi + 0xc]
lea ecx, [esp + 0xa8]
mov dword [esp + 0x108], eax
mov dword [esp + 0xc], 0x42a4
mov dword [esp + 0x18], 1
push 3
call fcn.10004e62
push 3
mov dword [esp + 0x198], 7
pop edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x10], ebx
jmp 0x10036ec6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa8]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10036eb3
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xa8]
setle cl
xor edx, edx
cmp ecx, dword [eax]
setne dl
xor ecx, ecx
add edx, dword [eax + 4]
mov eax, dword [esp + 0xc]
cmp eax, edx
mov eax, dword [esp + 0xa8]
setl cl
sub ecx, dword [eax + 8]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0xffffffff
setg al
xor edx, edx
imul ecx, eax, 0x79cc
mov eax, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0xa8]
setle dl
xor ecx, ecx
cmp edx, 0x18e50348
setle cl
imul ecx, dword [eax]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
xor ecx, ecx
cmp dword [esp + 0x1c], eax
setge cl
xor eax, eax
cmp ecx, 8
setge al
add eax, dword [esp + 0xc]
add eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xc], 0xf
jmp 0x10036ff1
push 3
lea ecx, [esp + 0xe8]
call fcn.10004e62
lea eax, [esp + 0xe4]
mov byte [esp + 0x194], 8
push eax
push 0x537b
push 0x6d60
lea eax, [esp + 0x134]
mov dword [esp + 0x90], 0x7fb07d0d
push eax
push 1
call fcn.100362a3
add esp, 0x14
lea eax, [esp + 0x84]
lea edx, [esp + 0x6c]
push 0x1609
push 1
push ecx
push eax
lea ecx, [esp + 0xf4]
call fcn.100364d8
add esp, 0x10
mov byte [esp + 0x194], 7
lea ecx, [esp + 0xe4]
call fcn.10004ee5
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff9
je 0x10036f71
or dword [esp + 0x194], 0xffffffff
lea ecx, [esp + 0xa8]
call fcn.10004ee5
mov esi, ebx
cmp dword [esp + 0x4c], esi
jbe 0x100373b2
sub edi, dword [esp + 0x2c]
mov dword [esp + 0xc], 0x3ae35568
mov dword [esp + 0x14], 0x986d6dbc
mov dword [esp + 0x28], 1
mov dword [esp + 0x28], 0x9a53aa48
push 3
mov dword [esp + 0x54], 0x5b2841c2
mov dword [esp + 0x10], ebx
pop edx
jmp 0x10037064
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x150], 0xc6516eae
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10037051
mov dword [esp + 0xc], ebx
jmp 0x10037083
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x17c], 0xb711a46c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10037070
mov dword [esp + 0xc], ebx
jmp 0x10037264
mov dword [esp + 0x18], ebx
lea ecx, [esp + 0xcc]
mov dword [esp + 0x10], 0xfff9
mov dword [esp + 0x28], 0x7023
mov dword [esp + 0x1c], 0xfffffff7
push 1
call fcn.10004e62
push ecx
lea eax, [esp + 0xd0]
mov dword [esp + 0x40], 0x3b350b83
push eax
lea eax, [esp + 0x134]
mov dl, 1
push eax
push ecx
push 0x3fcf
call fcn.10036504
add esp, 0x14
mov byte [esp + 0x3a], bl
lea eax, [esp + 0x3a]
push 0x5169
push 0x39d1
push ecx
push ecx
push eax
xor cl, cl
call fcn.100363b1
mov eax, dword [esp + 0x24]
add esp, 0x14
cmp dword [esp + 0xc], ebx
jne 0x10037112
mov eax, ebx
jmp 0x10037115
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
mov edx, 0xa306
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
sub eax, 0xfffffff0
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
sub edx, eax
add edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x9973
setl al
xor edx, edx
imul ecx, eax, 0xd62a
mov eax, dword [esp + 0x10]
cmp ecx, eax
setl dl
sub edx, dword [esp + 0x28]
sub edx, 0xe4c7
cmp dword [esp + 0x18], edx
jle 0x1003724a
mov dword [esp + 0x3c], 0x47a0ca4d
mov dword [esp + 0x18], 4
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
sub eax, 0x8c32619c
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp eax, ecx
setle dl
xor eax, eax
cmp edx, 0xffffffff
setg al
xor edx, edx
imul eax, eax, 0xa543
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xcc]
mov dword [eax], 0xd0f373a9
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x3c]
cmp eax, 0x3a3b
mov eax, dword [esp + 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
add ecx, dword [esp + 0x18]
je 0x10037215
mov eax, dword [esp + 0x154]
mov eax, dword [esp + 0x18]
mov edx, 0x4526
mov eax, dword [esp + 0x18]
mov ecx, 0x71db
push 0x32a2
push ebx
xor eax, eax
inc eax
push 0x118f
push eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x60]
push ebx
push eax
call fcn.10036545
add esp, 0x18
jmp 0x10037254
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jne 0x10037271
lea ecx, [esp + 0xcc]
call fcn.10004ee5
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffffe
jge 0x10037092
jmp 0x1003727d
lea ecx, [esp + 0xcc]
call fcn.10004ee5
mov eax, dword [esp + 0x2c]
mov edx, esi
and edx, 3
mov ecx, dword [eax]
mov edx, dword [esp + edx*4 + 0xfc]
call fcn.1000ed2e
mov edx, dword [esp + 0x2c]
mov dword [edi + edx], eax
add edx, 4
inc esi
mov dword [esp + 0x2c], edx
cmp esi, dword [esp + 0x4c]
jb 0x10037020
jmp 0x100373b2
mov dword [esp + 0x14], 0xfffffff6
xor ebx, ebx
push 2
mov dword [esp + 0x20], 0x41fd9d08
mov dword [esp + 0x14], ebx
pop esi
jmp 0x100372dd
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x70], 0xf73838a1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100372cd
inc dword [esp + 0x70]
xor ecx, ecx
mov dword [esp + 0x14], ebx
inc ecx
jmp 0x10037384
mov dword [esp + 0x3c], 0x7d96711d
mov dword [esp + 0x10], ebx
jmp 0x10037311
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x5c], 0x80849f84
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10037301
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x60], ebx
jl 0x10037380
mov dword [esp + 0x10], ebx
jmp 0x1003733a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x168], 0x3d3b0cf5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10037327
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x70]
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x70], ebx
je 0x10037357
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
sub edx, eax
mov eax, dword [esp + 0x14]
cmp edx, eax
setne cl
mov dword [esp + 0x170], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x3c], ecx
dec dword [esp + 0x60]
jns 0x10037321
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jle 0x100372f3
push 0x4dd7
push ecx
push 0x59ca
push ecx
push ecx
push 0x23b0
lea edx, [ebp + 8]
lea ecx, [esp + 0xb4]
call fcn.10036545
add esp, 0x18
mov ecx, dword [esp + 0x18c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret