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

Disassembly:
sub esp, 0x3a8
push esi
mov esi, ecx
mov eax, dword [esi + 0x4504]
add eax, 0x32e8
mov dword [esp + 0x78], eax
je 0x437d15
mov eax, dword [esi + 0x4310]
mov ecx, dword [esi + 0x4314]
mov edx, dword [esi + 0x4318]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x431c]
mov dword [esp + 0x88], ecx
mov ecx, dword [esi + 0x4360]
mov dword [esp + 0x84], eax
mov eax, dword [esi + 0x4368]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x436c]
push ebx
push ebp
push edi
mov dword [esp + 0x88], edx
mov edx, dword [esi + 0x4364]
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], ecx
xor ebp, ebp
mov ecx, 0xc8
xor eax, eax
lea edi, [esp + 0x98]
mov dword [esp + 0x70], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esi + 0x4334], 1
mov byte [esp + 0x1b], 0
mov dword [esp + 0x74], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x58], ebp
rep stosd dword es:[edi], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
mov edx, dword [esp + 0x50]
shl edx, 4
lea eax, [edx + esi]
mov dword [esp + 0x30], eax
add eax, 0x3e48
mov al, byte [eax]
test al, al
je case.0x436bea.18
mov ecx, dword [esp + 0x30]
movsx edx, word [ecx + 0x3e4a]
mov ecx, dword [esp + 0x84]
push edx
push eax
call fcn.00484e80
test eax, eax
mov dword [esp + 0x54], eax
je case.0x436bea.18
mov eax, dword [esp + 0x30]
mov cl, byte [eax + 0x3e48]
cmp cl, 6
jne 0x43542c
mov ax, word [eax + 0x3e4a]
cmp ax, 0xc8
jge 0x43542c
movsx edx, ax
mov eax, 1
mov dword [esp + edx*4 + 0x98], eax
jmp 0x435431
mov eax, 1
cmp cl, 2
jne 0x435449
mov ecx, dword [esi + 0x4504]
cmp dword [ecx + 0x368c], eax
jne 0x435482
add ebp, 5
jmp 0x435485
cmp cl, 3
jne 0x435485
mov edx, dword [esp + 0x54]
cmp dword [edx + 0x50], eax
jne 0x43546f
mov ecx, dword [esi + 0x4504]
cmp dword [ecx + 0x368c], eax
jne 0x43546a
add ebp, 0xb
jmp 0x435485
add ebp, 0xa
jmp 0x435485
mov edx, dword [esi + 0x4504]
cmp dword [edx + 0x368c], eax
jne 0x435482
add ebp, 5
jmp 0x435485
add ebp, 4
cmp dword [esp + 0x50], 7
jne 0x4354bd
mov ecx, dword [esp + 0x54]
xor eax, eax
mov al, byte [ecx + 0x55]
mov dword [esi + 0x4334], eax
mov dl, byte [esi + 0x3eb8]
cmp dl, byte [esi + 0x3e98]
jne 0x4354bd
mov ax, word [esi + 0x3eba]
cmp ax, word [esi + 0x3e9a]
je case.0x436bea.18
mov eax, dword [esp + 0x54]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ecx
mov edi, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
mov al, byte [eax + 0x54]
mov dword [esp + 0x34], ecx
cmp al, 1
je 0x4354e4
cmp al, 3
jne case.0x4356b0.152
mov edx, dword [esp + 0x30]
mov al, byte [edx + 0x3e48]
cmp al, 1
jne 0x435632
movsx eax, word [edx + 0x3e4a]
add eax, 0xffffff38
cmp eax, 0x29
ja case.0x4356b0.152
xor edx, edx
mov dl, byte [eax + 0x437d44]
jmp dword [edx*4 + 0x437d20]
mov edx, dword [esi + 0x3f5c]
mov eax, 0x88888889
imul edx, dword [esi + 0x37f8]
mul edx
mov edi, edx
shr edi, 4
add ebp, 0x14
jmp case.0x4356b0.152
mov ecx, dword [esi + 0x3f60]
mov eax, 0x38e38e39
imul ecx, dword [esi + 0x37f8]
mul ecx
mov ecx, edx
shr ecx, 2
mov dword [esp + 0x1c], ecx
add ebp, 0x14
jmp case.0x4356b0.152
mov edx, dword [esi + 0x3f60]
mov eax, 0x51eb851f
imul edx, dword [esi + 0x37f8]
mul edx
mov ecx, edx
shr ecx, 3
mov dword [esp + 0x1c], ecx
add ebp, 0x14
jmp case.0x4356b0.152
mov edx, dword [esi + 0x3f5c]
mov eax, 0xcccccccd
imul edx, dword [esi + 0x37f8]
mul edx
mov edi, edx
shr edi, 4
add ebp, 0x14
jmp case.0x4356b0.152
mov edx, dword [esi + 0x3f5c]
mov eax, 0x51eb851f
imul edx, dword [esi + 0x37f8]
mul edx
mov edi, edx
shr edi, 3
add ebp, 0x14
jmp case.0x4356b0.152
mov edx, dword [esi + 0x3f64]
mov eax, 0xcccccccd
imul edx, dword [esi + 0x37f8]
mul edx
mov edi, edx
shr edi, 5
add ebp, 0x14
jmp case.0x4356b0.152
mov edi, dword [esi + 0x3f64]
mov eax, 0xd41d41d5
imul edi, dword [esi + 0x37f8]
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 5
add ebp, 0x14
jmp case.0x4356b0.152
mov edi, dword [esi + 0x3f5c]
mov eax, 0xd41d41d5
imul edi, dword [esi + 0x37f8]
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 5
add ebp, 0x14
jmp case.0x4356b0.152
cmp al, 3
jne 0x43568d
movsx eax, word [edx + 0x3e4a]
sub eax, 0x2a
je 0x43566b
dec eax
jne case.0x4356b0.152
mov ecx, dword [esi + 0x3f60]
mov eax, 0x51eb851f
imul ecx, dword [esi + 0x37f8]
mul ecx
mov ecx, edx
shr ecx, 3
mov dword [esp + 0x1c], ecx
jmp case.0x4356b0.152
mov edx, dword [esi + 0x3f60]
mov eax, 0x88888889
imul edx, dword [esi + 0x37f8]
mul edx
mov ecx, edx
shr ecx, 4
mov dword [esp + 0x1c], ecx
jmp case.0x4356b0.152
cmp al, 6
jne case.0x4356b0.152
movsx eax, word [edx + 0x3e4a]
add eax, 0xffffffaf
cmp eax, 0x71
ja case.0x4356b0.152
xor edx, edx
mov dl, byte [eax + 0x437e90]
jmp dword [edx*4 + 0x437d70]
mov ecx, 0x30d40
mov dword [esp + 0x1c], ecx
jmp case.0x4356b0.152
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 6
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 6
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea eax, [edx + edx*2]
lea ebx, [edx + eax*4]
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 6
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea eax, [edx + edx*8]
lea ebx, [edx + eax*2]
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 6
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
add ebp, 6
lea eax, [edx + edx*8]
mov dword [esp + 0x10], ecx
lea ebx, [edx + eax*2]
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 6
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
add ebp, 8
lea eax, [edx + edx*8]
mov dword [esp + 0x10], ecx
lea ebx, [edx + eax*2]
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0xc0c0c0c1
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 7
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0xc0c0c0c1
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 7
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx*8]
sub ebx, edx
shl ebx, 1
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0xc0c0c0c1
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 7
jmp 0x435731
mov ecx, dword [esi + 0x3f68]
mov eax, 0xc0c0c0c1
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 7
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
add ebp, 6
lea eax, [edx + edx*8]
mov dword [esp + 0x10], ecx
lea ebx, [edx + eax*2]
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0xc0c0c0c1
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 7
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
add ebp, 8
lea eax, [edx + edx*8]
mov dword [esp + 0x10], ecx
lea ebx, [edx + eax*2]
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x5d9f7391
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 8
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0x5d9f7391
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 8
jmp 0x435705
mov ecx, dword [esi + 0x3f68]
mov eax, 0x5d9f7391
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 8
jmp 0x435d09
mov edx, dword [esi + 0x3f68]
mov eax, 0x5d9f7391
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 8
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
shl ebx, 2
add ebp, 6
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x5d9f7391
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 8
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
shl ebx, 2
add ebp, 8
jmp 0x435ac2
mov edx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
mov ebx, edx
shl ebx, 4
add ebx, edx
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea eax, [edx + edx*2]
lea ebx, [eax + eax*4]
shl ebx, 1
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
lea ebx, [edx + edx*2]
mov dword [esp + 0x10], ecx
lea ebx, [ebx + ebx*4]
shl ebx, 1
add ebp, 6
jmp 0x435ac2
mov edx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
lea ebx, [edx + edx*2]
mov dword [esp + 0x10], ecx
lea ebx, [ebx + ebx*4]
shl ebx, 1
add ebp, 8
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 5
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 5
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea eax, [edx + edx*2]
lea ebx, [eax + eax*4]
add ebp, 4
mov ecx, dword [esp + 0x30]
lea eax, [ecx + 0x3e48]
mov ecx, esi
push eax
call fcn.0040e1c0
cmp eax, 0x14
jge 0x436838
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + edx*2]
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + edx*8]
xor ecx, ecx
mov cl, byte [eax + 0x3e55]
mov dword [esp + 0x28], edx
mov eax, ecx
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + edx*2]
mov dword [esp + 0x2c], ecx
jmp 0x436a00
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 5
jmp 0x435d09
mov edx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 5
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
shl ebx, 2
add ebp, 6
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 5
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
shl ebx, 2
add ebp, 8
jmp 0x435ac2
mov edx, dword [esi + 0x3f68]
mov eax, 0xc9a633fd
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0xc9a633fd
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
mov ebx, edx
shl ebx, 4
add ebx, edx
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0xc9a633fd
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea eax, [edx + edx*4]
jmp 0x435abc
mov ecx, dword [esi + 0x3f68]
mov eax, 0xc9a633fd
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
add ebp, 6
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
lea ebx, [ebx + ebx*4]
jmp 0x435ac2
mov edx, dword [esi + 0x3f68]
mov eax, 0xc9a633fd
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
add ebp, 8
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
lea ebx, [ebx + ebx*4]
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*8]
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*4]
shl ebx, 2
jmp 0x435abf
mov ecx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
lea ebx, [edx + edx*4]
shl ebx, 3
jmp 0x435abf
mov edx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 0xa
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 2
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
shl ebx, 3
add ebp, 6
jmp 0x435ac2
mov ecx, dword [esi + 0x3f68]
mov eax, 0x91a2b3c5
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 0xa
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x10]
mul edx
shr edx, 3
add ecx, 4
lea ebx, [edx + edx*4]
mov dword [esp + 0x10], ecx
shl ebx, 3
add ebp, 8
jmp 0x435ac2
mov edx, dword [esi + 0x3f60]
mov eax, 0x88888889
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 4
mov eax, 0xcccccccd
mul edx
shr edx, 3
add ebp, 5
lea eax, [edx + edx*4]
mov dword [esp + 0x1c], eax
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0x6c16c16d
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 3
lea eax, [edx + edx*4]
mov dword [esp + 0x1c], eax
mov eax, 0xd41d41d5
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
mov dword [esp + 0x34], ecx
add ebp, 5
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0xcccccccd
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 5
mov eax, 0xcccccccd
mul edx
shr edx, 3
mov eax, 0x51eb851f
lea edx, [edx + edx*4]
mov dword [esp + 0x1c], edx
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
add ebp, 5
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0xd41d41d5
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 3
lea eax, [edx + edx*4]
mov dword [esp + 0x1c], eax
mov eax, 0x88888889
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
add ebp, 5
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0x88888889
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 4
mov eax, 0xcccccccd
mul edx
shr edx, 3
mov eax, 0xcccccccd
lea edx, [edx + edx*4]
mov dword [esp + 0x1c], edx
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
add ebp, 5
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0xd41d41d5
imul ecx, dword [esi + 0x37f8]
mul ecx
sub ecx, edx
mov eax, 0xcccccccd
shr ecx, 1
add ecx, edx
shr ecx, 5
mul ecx
shr edx, 3
shl edx, 2
mov dword [esp + 0x1c], edx
add ebp, 0xa
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0x6c16c16d
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 3
shl edx, 2
mov eax, 0xd41d41d5
mov dword [esp + 0x1c], edx
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
mov dword [esp + 0x34], ecx
add ebp, 0xa
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0xcccccccd
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 5
mov eax, 0xcccccccd
mul edx
shr edx, 3
shl edx, 2
mov eax, 0x51eb851f
mov dword [esp + 0x1c], edx
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
add ebp, 0xa
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0xd41d41d5
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 3
shl edx, 2
mov eax, 0x88888889
mov dword [esp + 0x1c], edx
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
add ebp, 0xa
jmp 0x4365f4
mov ecx, dword [esi + 0x3f60]
mov eax, 0x88888889
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 4
mov eax, 0xcccccccd
mul edx
shr edx, 3
shl edx, 2
mov eax, 0xcccccccd
mov dword [esp + 0x1c], edx
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
add ebp, 0xa
jmp 0x4365f4
mov al, byte [esi + 0x37fc]
cmp al, 2
jne 0x436070
mov ecx, dword [esi + 0x3f5c]
mov eax, 0xcccccccd
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, edx
shr edi, 5
jmp 0x4365f1
mov edi, dword [esi + 0x3f5c]
cmp al, 7
jne 0x4364a1
imul edi, dword [esi + 0x37f8]
mov eax, 0x29e4129f
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 5
jmp 0x4365f1
mov al, byte [esi + 0x37fc]
cmp al, 2
jne 0x4360d2
mov ecx, dword [esi + 0x3f5c]
mov eax, 0xd41d41d5
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, ecx
mov eax, 0xcccccccd
sub edi, edx
shr edi, 1
add edi, edx
mul ecx
shr edi, 5
shr edx, 4
jmp 0x4365ed
mov ecx, dword [esi + 0x3f5c]
cmp al, 7
jne 0x4364ef
imul ecx, dword [esi + 0x37f8]
mov eax, 0x51eb851f
mul ecx
mov eax, 0x88888889
mov edi, edx
mul ecx
shr edi, 4
shr edx, 4
jmp 0x4365ed
mov al, byte [esi + 0x37fc]
cmp al, 2
jne 0x436134
mov ecx, dword [esi + 0x3f5c]
mov eax, 0x88888889
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edi, 4
shr edx, 3
jmp 0x4365ed
mov ecx, dword [esi + 0x3f5c]
cmp al, 7
jne 0x436549
imul ecx, dword [esi + 0x37f8]
mov eax, 0x6c16c16d
jmp 0x436555
mov al, byte [esi + 0x37fc]
cmp al, 2
jne 0x436185
mov ecx, dword [esi + 0x3f5c]
mov eax, 0x51eb851f
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edi, 3
shr edx, 2
jmp 0x4365ed
mov ecx, dword [esi + 0x3f5c]
cmp al, 7
jne 0x4361a4
imul ecx, dword [esi + 0x37f8]
mov eax, 0xcccccccd
mul ecx
mov edi, edx
shr edi, 5
jmp 0x4361b7
imul ecx, dword [esi + 0x37f8]
mov eax, 0x88888889
mul ecx
mov edi, edx
shr edi, 4
mov eax, 0x24924925
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov dword [esp + 0x24], ecx
jmp 0x4365f1
mov al, byte [esi + 0x37fc]
cmp al, 2
jne 0x4361fe
mov ecx, dword [esi + 0x3f5c]
mov eax, 0xcccccccd
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, edx
shr edi, 4
shr ecx, 1
mov dword [esp + 0x24], ecx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f5c]
cmp al, 7
jne 0x4365ce
imul ecx, dword [esi + 0x37f8]
mov eax, 0xd41d41d5
mov edi, ecx
mul ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 5
jmp 0x4365e1
mov edx, dword [esi + 0x3f60]
mov eax, 0xfc0fc0fd
imul edx, dword [esi + 0x37f8]
mul edx
shr edx, 6
mov dword [esp + 0x1c], edx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f60]
mov eax, 0x88888889
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 5
mov eax, 0xd41d41d5
mov dword [esp + 0x1c], edx
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
mov dword [esp + 0x34], ecx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f60]
mov eax, 0x29e4129f
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov dword [esp + 0x1c], eax
mov eax, 0x51eb851f
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f60]
mov eax, 0x51eb851f
imul ecx, dword [esi + 0x37f8]
mul ecx
shr edx, 4
mov eax, 0xaaaaaaab
mov dword [esp + 0x1c], edx
mul ecx
shr edx, 3
mov dword [esp + 0x34], edx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f60]
mov eax, 0x6c16c16d
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov dword [esp + 0x1c], eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
mov dword [esp + 0x34], edx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f5c]
mov eax, 0x51eb851f
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, edx
shr edi, 4
jmp 0x4365f1
mov ecx, dword [esi + 0x3f5c]
mov eax, 0x6c16c16d
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, ecx
mov eax, 0xcccccccd
sub edi, edx
shr edi, 1
add edi, edx
mul ecx
shr edi, 5
shr edx, 4
jmp 0x4365ed
mov ecx, dword [esi + 0x3f5c]
mov eax, 0xcccccccd
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, 0x38e38e39
mov edi, edx
mul ecx
shr edi, 5
shr edx, 1
jmp 0x4365ed
mov ecx, dword [esi + 0x3f5c]
mov eax, 0xd41d41d5
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 5
shr ecx, 2
mov dword [esp + 0x24], ecx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f5c]
mov eax, 0x88888889
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, edx
shr edi, 4
shr ecx, 1
mov dword [esp + 0x24], ecx
jmp 0x4365f1
mov edx, dword [esi + 0x3f64]
mov eax, 0xcccccccd
imul edx, dword [esi + 0x37f8]
mul edx
mov edi, edx
shr edi, 6
jmp 0x4365f1
mov ecx, dword [esi + 0x3f64]
mov eax, 0x1b4e81b5
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edi, 3
shr edx, 4
jmp 0x4365eb
mov ecx, dword [esi + 0x3f64]
mov eax, 0xd41d41d5
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, ecx
mov eax, 0x88888889
sub edi, edx
shr edi, 1
add edi, edx
mul ecx
shr edi, 6
shr edx, 3
jmp 0x4365eb
mov ecx, dword [esi + 0x3f64]
mov eax, 0xfc0fc0fd
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, edx
shr ecx, 3
shr edi, 6
shl ecx, 1
mov dword [esp + 0x24], ecx
jmp 0x4365f1
mov ecx, dword [esi + 0x3f64]
mov eax, 0x88888889
imul ecx, dword [esi + 0x37f8]
mul ecx
mov edi, edx
shr edi, 5
jmp 0x4365e1
mov al, byte [esi + 0x37fc]
mov edi, dword [esi + 0x3f5c]
cmp al, 5
imul edi, dword [esi + 0x37f8]
mov eax, 0x6c16c16d
mul edi
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 5
jmp 0x4365f1
mov al, byte [esi + 0x37fc]
mov ecx, dword [esi + 0x3f5c]
cmp al, 5
jne 0x4364ef
imul ecx, dword [esi + 0x37f8]
mov eax, 0xcccccccd
mul ecx
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edi, 5
shr edx, 4
jmp 0x4365ed
imul ecx, dword [esi + 0x37f8]
mov eax, 0xcccccccd
mul ecx
mov eax, 0x88888889
mov edi, edx
mul ecx
shr edi, 5
shr edx, 4
jmp 0x4365ed
mov al, byte [esi + 0x37fc]
mov ecx, dword [esi + 0x3f5c]
cmp al, 5
jne 0x436549
imul ecx, dword [esi + 0x37f8]
mov eax, 0xd41d41d5
mov edi, ecx
mul ecx
sub edi, edx
mov eax, 0xcccccccd
shr edi, 1
add edi, edx
mul ecx
shr edi, 5
shr edx, 3
jmp 0x4365ed
imul ecx, dword [esi + 0x37f8]
mov eax, 0xd41d41d5
mul ecx
mov edi, ecx
mov eax, 0x88888889
sub edi, edx
shr edi, 1
add edi, edx
mul ecx
shr edi, 5
shr edx, 3
jmp 0x4365ed
mov al, byte [esi + 0x37fc]
mov ecx, dword [esi + 0x3f5c]
cmp al, 5
jne 0x4361a4
imul ecx, dword [esi + 0x37f8]
mov eax, 0x88888889
mul ecx
mov eax, 0xaaaaaaab
mov edi, edx
mul ecx
shr edi, 4
shr edx, 1
jmp 0x4365ed
mov al, byte [esi + 0x37fc]
mov ecx, dword [esi + 0x3f5c]
cmp al, 5
jne 0x4365ce
imul ecx, dword [esi + 0x37f8]
mov eax, 0x51eb851f
mul ecx
mov eax, 0xaaaaaaab
mov edi, edx
mul ecx
shr edi, 3
shr edx, 1
jmp 0x4365eb
imul ecx, dword [esi + 0x37f8]
mov eax, 0x51eb851f
mul ecx
mov edi, edx
shr edi, 3
mov eax, 0xcccccccd
mul ecx
shr edx, 2
shl edx, 1
mov dword [esp + 0x24], edx
add ebp, 0x14
mov eax, dword [esp + 0x30]
mov ecx, esi
add eax, 0x3e48
push eax
call fcn.0040e1c0
cmp eax, 0x14
jge 0x43666f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
xor ecx, ecx
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + edx*4]
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
xor edx, edx
mov dl, byte [eax + 0x3e55]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
mov eax, edx
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
jmp 0x4369fc
cmp eax, 0x28
jge 0x4366dd
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov edx, dword [esp + 0x38]
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
shl edx, 4
add ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
lea ecx, [ecx + ecx*4]
shl ecx, 4
add edx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], edx
xor edx, edx
mov dl, byte [eax + 0x3e55]
mov eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
jmp 0x4369fc
cmp eax, 0x3c
jge 0x43674f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
xor ecx, ecx
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*4]
shl ecx, 4
add edx, ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
mov dword [esp + 0x38], edx
lea ecx, [ecx + ecx*4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + edx*4]
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
xor edx, edx
mov dl, byte [eax + 0x3e55]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
mov eax, edx
lea eax, [eax + eax*4]
shl eax, 4
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x436a00
cmp eax, 0x50
jge 0x4367bf
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov edx, dword [esp + 0x38]
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + edx*8]
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
xor edx, edx
mov dl, byte [eax + 0x3e55]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
mov eax, edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
jmp 0x4369fc
mov ecx, dword [esp + 0x30]
xor eax, eax
mov edx, dword [esp + 0x38]
mov al, byte [ecx + 0x3e52]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ecx + 0x3e53]
mov dword [esp + 0x38], eax
lea eax, [edx*8]
sub eax, edx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
lea edx, [eax + edx*4]
mov dword [esp + 0x3c], edx
xor edx, edx
mov dl, byte [ecx + 0x3e54]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
xor eax, eax
mov al, byte [ecx + 0x3e55]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esp + 0x2c], eax
jmp 0x436a00
cmp eax, 0x28
jge 0x4368a9
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [eax + 0x3e52]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + edx*8]
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
lea ecx, [ecx + ecx*4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + edx*2]
xor ecx, ecx
mov cl, byte [eax + 0x3e55]
mov dword [esp + 0x28], edx
mov eax, ecx
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + edx*4]
mov dword [esp + 0x2c], ecx
jmp 0x436a00
cmp eax, 0x3c
jge 0x436916
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + edx*2]
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + edx*4]
xor ecx, ecx
mov cl, byte [eax + 0x3e55]
mov dword [esp + 0x28], edx
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*4]
jmp 0x4369f5
cmp eax, 0x50
jge 0x436992
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov edx, dword [esp + 0x38]
mov cl, byte [eax + 0x3e52]
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
xor edx, edx
mov dl, byte [eax + 0x3e53]
mov dword [esp + 0x38], ecx
lea ecx, [edx*8]
sub ecx, edx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + edx*2]
mov dword [esp + 0x3c], edx
xor edx, edx
mov dl, byte [eax + 0x3e54]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
xor edx, edx
mov dl, byte [eax + 0x3e55]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
mov eax, edx
lea eax, [eax + eax*4]
shl eax, 4
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x436a00
mov eax, dword [esp + 0x30]
xor edx, edx
mov dl, byte [eax + 0x3e52]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e53]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
shl edx, 4
add ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov cl, byte [eax + 0x3e54]
lea ecx, [ecx + ecx*4]
shl ecx, 4
add edx, ecx
mov dword [esp + 0x28], edx
xor edx, edx
mov dl, byte [eax + 0x3e55]
mov eax, edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + eax*2]
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x1c]
test edi, edi
jle 0x436aa6
mov eax, dword [esp + 0x30]
add eax, 0x3e48
mov dl, byte [eax]
cmp dl, 1
jne 0x436a57
mov eax, dword [esp + 0x30]
mov ax, word [eax + 0x3e4a]
cmp ax, 0x21
jl 0x436a33
cmp ax, 0x33
jle 0x436a8b
cmp ax, 0x7d
jl 0x436a3f
cmp ax, 0x87
jle 0x436a8b
cmp ax, 0xe6
je 0x436a8b
cmp ax, 0xe7
je 0x436a8b
cmp ax, 0xb4
jl 0x436a57
cmp ax, 0xb8
jle 0x436a8b
cmp dl, 6
jne 0x436a95
mov edx, dword [esp + 0x30]
mov ax, word [edx + 0x3e4a]
cmp ax, 0x53
je 0x436a8b
cmp ax, 0x71
je 0x436a8b
cmp ax, 0x85
je 0x436a8b
cmp ax, 0x99
je 0x436a8b
cmp ax, 0xad
je 0x436a8b
cmp ax, 0xc1
jne 0x436a95
cmp edi, 0x5f5e100
jl 0x436aa2
jmp 0x436a9d
cmp edi, 0x5f5e100
jl 0x436aa2
mov edi, 0x5f5e100
add dword [esp + 0x40], edi
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
test eax, eax
jle 0x436b49
mov dl, byte [edi + 0x3e48]
cmp dl, 1
jne 0x436af8
mov ax, word [edi + 0x3e4a]
cmp ax, 0x21
jl 0x436ad4
cmp ax, 0x33
jle 0x436b28
cmp ax, 0x7d
jl 0x436ae0
cmp ax, 0x87
jle 0x436b28
cmp ax, 0xe6
je 0x436b28
cmp ax, 0xe7
je 0x436b28
cmp ax, 0xb4
jl 0x436af8
cmp ax, 0xb8
jle 0x436b28
cmp dl, 6
jne 0x436b35
mov ax, word [edi + 0x3e4a]
cmp ax, 0x53
je 0x436b28
cmp ax, 0x71
je 0x436b28
cmp ax, 0x85
je 0x436b28
cmp ax, 0x99
je 0x436b28
cmp ax, 0xad
je 0x436b28
cmp ax, 0xc1
jne 0x436b35
mov eax, dword [esp + 0x24]
cmp eax, 0x5f5e100
jl 0x436b45
jmp 0x436b40
mov eax, dword [esp + 0x24]
cmp eax, 0x5f5e100
jl 0x436b45
mov eax, 0x5f5e100
add dword [esp + 0x44], eax
test ebx, ebx
jle 0x436b51
add dword [esp + 0x14], ebx
test ecx, ecx
jle 0x436b68
cmp ecx, 0x5f5e100
mov eax, ecx
jl 0x436b64
mov eax, 0x5f5e100
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x436b80
cmp eax, 0x5f5e100
jl 0x436b7c
mov eax, 0x5f5e100
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
add edx, ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x24]
add ebx, edx
mov edx, dword [esp + 0x28]
add edx, ecx
mov cl, byte [edi + 0x3e48]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x2c]
lea eax, [edi + 0x3e48]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x2c]
add ebx, edx
cmp cl, 6
mov dword [esp + 0x2c], ebx
jne case.0x436bea.18
mov eax, dword [esp + 0x30]
movsx eax, word [eax + 0x3e4a]
dec eax
cmp eax, 0x61
ja case.0x436bea.18
xor ecx, ecx
mov cl, byte [eax + 0x437f4c]
jmp dword [ecx*4 + 0x437f04]
mov eax, dword [esi + 0x42c8]
test eax, eax
jle case.0x436bea.18
mov ecx, esi
call fcn.0040b700
mov eax, dword [eax + 0x18]
lea edx, [esi + 0x37d8]
push 0
push edx
mov ecx, eax
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CArmy::IsArmyCommander_char___int_]
test eax, eax
je case.0x436bea.18
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, 0x1f4
add ebx, eax
add edi, eax
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], ebx
add eax, 0x2710
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], eax
mov eax, 0xcccccccd
mul dword [esi + 0x37f8]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esi + 0x3f68]
shr ecx, 3
shr edx, 3
imul edx, ecx
imul edx, ecx
mov eax, 0x51eb851f
mul edx
mov eax, dword [esp + 0x14]
shr edx, 5
add eax, edx
mov dword [esp + 0x14], eax
jmp case.0x436bea.18
mov eax, 0xcccccccd
mul dword [esi + 0x3f68]
shr edx, 3
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esi + 0x37f8]
shr edx, 3
imul ecx, edx
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 3
add eax, edx
mov dword [esp + 0x14], eax
jmp case.0x436bea.18
mov eax, 0xcccccccd
push 1
mul dword [esi + 0x3f68]
shr edx, 3
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esi + 0x37f8]
shr edx, 3
imul ecx, edx
mov eax, 0xcccccccd
mov byte [esp + 0x1f], 1
mul ecx
mov eax, dword [esp + 0x18]
mov ecx, esi
shr edx, 2
add eax, edx
mov edx, dword [esi]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x1f]
push eax
push 1
push 0x3f5
call dword [edx + 0xc]
jmp case.0x436bea.18
mov eax, 0xcccccccd
mov dword [esp + 0x80], 1
mul dword [esi + 0x3f68]
shr edx, 3
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esi + 0x37f8]
shr edx, 3
imul ecx, edx
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 2
add eax, edx
mov dword [esp + 0x14], eax
jmp case.0x436bea.18
mov eax, 0xcccccccd
mov ecx, dword [esi + 0x37f8]
mul dword [esi + 0x3f68]
shr edx, 3
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edx, 3
imul edi, edx
mov eax, 0xcccccccd
mov dword [esp + 0x74], 1
mul edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
shr edx, 4
add edi, edx
lea edx, [ecx + ecx*2]
shr edx, 1
add eax, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x40], eax
jmp case.0x436bea.18
mov eax, 0xcccccccd
mov ecx, dword [esi + 0x37f8]
mul dword [esi + 0x3f68]
shr edx, 3
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edx, 3
imul edi, edx
mov eax, 0xcccccccd
mov dword [esp + 0x68], 1
mul edi
mov edi, dword [esp + 0x14]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x28]
shr edx, 3
shr eax, 1
add edi, edx
add ecx, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], ecx
jmp case.0x436bea.18
mov eax, 0xcccccccd
mov ecx, dword [esi + 0x37f8]
mul dword [esi + 0x3f68]
shr edx, 3
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edx, 3
imul edi, edx
mov eax, 0xcccccccd
lea ecx, [ecx + ecx*2]
mul edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
shr edx, 3
shr ecx, 1
add edi, edx
add eax, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], eax
jmp case.0x436bea.18
mov eax, 0xcccccccd
mov ecx, dword [esi + 0x3f68]
mul dword [esi + 0x37f8]
shr edx, 3
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edx, 3
imul edi, edx
mov eax, 0xcccccccd
mul edi
mov edi, dword [esp + 0x14]
mov eax, 0x51eb851f
shr edx, 3
add edi, edx
lea edx, [ecx + ecx]
mul edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
shr edx, 3
add eax, edx
mov dword [esp + 0x2c], eax
jmp case.0x436bea.18
mov eax, dword [esi + 0x37f8]
lea ecx, [eax + eax*8]
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
shr edx, 3
add ecx, edx
inc eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x58], eax
jmp case.0x436bea.18
mov eax, dword [esi + 0x37f8]
lea edx, [eax + eax*8]
lea ecx, [eax + edx*2]
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
shr edx, 3
add ecx, edx
inc eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], eax
jmp case.0x436bea.18
mov eax, dword [esi + 0x37f8]
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*8]
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x48]
shr edx, 3
add ecx, edx
inc eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
jmp case.0x436bea.18
mov ecx, dword [esi + 0x3f68]
mov eax, 0x10624dd3
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 5
add eax, edx
mov dword [esp + 0x14], eax
jmp case.0x436bea.18
mov ecx, dword [esi + 0x3f68]
mov edx, dword [esi + 0x37f8]
imul edx, ecx
mov eax, 0x10624dd3
mov edi, dword [esp + 0x14]
mul edx
shr edx, 6
add ecx, ecx
mov eax, 0x51eb851f
add edi, edx
mul ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
shr edx, 3
add eax, edx
mov dword [esp + 0x2c], eax
jmp case.0x436bea.18
mov edi, dword [esi + 0x37f8]
mov eax, dword [esi + 0x3f68]
xor ebx, ebx
push ebx
push edi
push ebx
push eax
jmp 0x436fde
mov ecx, dword [esi + 0x3f68]
mov eax, 0x10624dd3
imul ecx, dword [esi + 0x37f8]
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 6
add eax, edx
mov dword [esp + 0x14], eax
jmp case.0x436bea.18
mov edi, dword [esi + 0x37f8]
mov edx, dword [esi + 0x3f68]
xor ebx, ebx
push ebx
push edi
push ebx
push edx
call fcn.0048a1c0
push ebx
push edi
push edx
push eax
call fcn.0048a1c0
push 0
push 0x186a0
push edx
push eax
call fcn.0048a110
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
inc eax
cmp eax, 0xe
mov dword [esp + 0x50], eax
jl 0x4353bd
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x208]
mov ecx, dword [esp + 0x204]
mov edi, 0x1e
test eax, eax
mov eax, dword [esp + 0x200]
je 0x437059
test eax, eax
je 0x437065
test ecx, ecx
je 0x437059
test edx, edx
je 0x437059
mov eax, dword [esp + 0x10]
add ebp, edi
add eax, 0x14
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
mov ebx, 0xa
jmp 0x437079
test eax, eax
je 0x437065
mov dword [esp + 0x20], 5
test ecx, ecx
mov ebx, 0xa
je 0x437070
add ebp, ebx
test edx, edx
je 0x437079
add dword [esp + 0x20], 5
mov eax, dword [esp + 0x20c]
test eax, eax
mov eax, dword [esp + 0x210]
je 0x43709e
test eax, eax
je 0x437099
mov eax, dword [esp + 0x10]
add ebp, edi
add eax, edi
jmp 0x4370ab
add ebp, 0xf
jmp 0x4370a5
test eax, eax
je 0x4370af
add ebp, 5
mov eax, dword [esp + 0x10]
add eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x214]
mov edx, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
test eax, eax
mov eax, dword [esp + 0x218]
je 0x4370fd
test eax, eax
je 0x4370f1
test ecx, ecx
je 0x4370f1
test edx, edx
je 0x4370f1
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
add edx, 0x28
add ebp, 0x28
mov dword [esp + 0x20], edx
add eax, edi
jmp 0x43712a
mov edi, dword [esp + 0x20]
add edi, ebx
add ebp, ebx
mov dword [esp + 0x20], edi
test eax, eax
je 0x43710d
mov edi, dword [esp + 0x20]
add edi, ebx
add ebp, ebx
mov dword [esp + 0x20], edi
test ecx, ecx
je 0x43711d
mov ecx, dword [esp + 0x20]
add ecx, ebx
add ebp, ebx
mov dword [esp + 0x20], ecx
test edx, edx
je 0x43712e
mov eax, dword [esp + 0x10]
add ebp, ebx
add eax, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x100]
test eax, eax
mov eax, dword [esp + 0xc4]
je 0x437190
test eax, eax
je 0x43717f
test ecx, ecx
je 0x43717f
test edx, edx
je 0x43717f
mov eax, dword [esi + 0x449c]
mov ebx, 2
cmp eax, ebx
mov eax, dword [esp + 0x20]
je 0x437176
add eax, 0x32
mov dword [esp + 0x20], eax
jmp 0x4371b2
add eax, 0x28
mov dword [esp + 0x20], eax
jmp 0x4371b2
mov ebx, dword [esp + 0x20]
mov edi, 5
add ebx, edi
mov dword [esp + 0x20], ebx
jmp 0x437195
mov edi, 5
test eax, eax
je 0x43719d
add dword [esp + 0x20], edi
test ecx, ecx
je 0x4371a5
add dword [esp + 0x20], edi
test edx, edx
je 0x4371ad
add dword [esp + 0x20], edi
mov ebx, 2
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xf8]
test eax, eax
mov eax, dword [esp + 0xd4]
je 0x43721a
test eax, eax
je 0x4371fd
test ecx, ecx
je 0x4371fd
mov eax, dword [esi + 0x4504]
mov edi, 1
cmp dword [eax + 0x368c], edi
jne 0x4371eb
add ebp, 0x3c
jmp 0x437253
cmp dword [esi + 0x449c], ebx
je 0x4371f8
add ebp, 0x28
jmp 0x437253
add ebp, 0x32
jmp 0x437253
mov edx, dword [esi + 0x4504]
mov edi, 1
cmp dword [edx + 0x368c], edi
jne 0x437215
add ebp, 0xf
jmp 0x43721f
add ebp, 0xa
jmp 0x43721f
mov edi, 1
test eax, eax
je 0x437239
mov eax, dword [esi + 0x4504]
cmp dword [eax + 0x368c], edi
jne 0x437236
add ebp, 0xf
jmp 0x437239
add ebp, 0xa
test ecx, ecx
je 0x437253
mov ecx, dword [esi + 0x4504]
cmp dword [ecx + 0x368c], edi
jne 0x437250
add ebp, 0xf
jmp 0x437253
add ebp, 0xa
mov eax, dword [esp + 0xb8]
test eax, eax
mov eax, dword [esp + 0xc8]
je 0x437272
test eax, eax
mov eax, dword [esp + 0x10]
je 0x43727a
add eax, 0x32
jmp 0x43727d
test eax, eax
je 0x437281
mov eax, dword [esp + 0x10]
add eax, 0xa
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x124]
test eax, eax
je 0x4372b0
mov eax, dword [esp + 0x128]
test eax, eax
je 0x4372b0
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x4372b0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], ebx
jmp 0x4372b4
mov ebx, dword [esp + 0x58]
mov al, byte [esp + 0x1b]
test al, al
jne 0x437309
mov eax, dword [esi + 0x4168]
test ah, 1
jne 0x4372e2
mov edx, dword [esi]
lea eax, [esp + 0x1b]
push edi
push eax
push edi
push 0x3f5
mov ecx, esi
call dword [edx + 0xc]
mov al, byte [esp + 0x1b]
test al, al
jne 0x437309
mov al, byte [esi + 0x402e]
mov byte [esp + 0x1b], 1
test al, 3
ja 0x4372f6
mov byte [esp + 0x1b], 0
mov edx, dword [esi]
lea eax, [esp + 0x1b]
push edi
push eax
push edi
push 0x3f5
mov ecx, esi
call dword [edx + 0xc]
mov al, byte [esi + 0x402c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
mov dword [esi + 0x4358], ecx
test al, 3
mov dword [esi + 0x435c], edx
jbe 0x437333
or byte [esi + 0x4028], 0x10
jmp 0x437359
mov ecx, dword [esp + 0x68]
xor eax, eax
test ecx, ecx
mov cx, word [esi + 0x4028]
setne al
and eax, edi
and ecx, 0xffef
shl eax, 4
or eax, ecx
mov word [esi + 0x4028], ax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmp ebp, 0x5a
mov dword [esi + 0x4370], edx
mov dword [esi + 0x4374], eax
jbe 0x437377
mov ebp, 0x5a
lea ecx, [esi + 0x37d8]
push 0xffffffffffffffff
push ecx
mov ecx, dword [esi + 0x4504]
mov dword [esi + 0x4378], ebp
call fcn.00463ad0
test ebx, ebx
je 0x437420
mov cl, byte [esi + 0x37fc]
cmp cl, 8
jle 0x4373ab
mov eax, 8
jmp 0x4373b6
test cl, cl
jge 0x4373b3
xor eax, eax
jmp 0x4373b6
movsx eax, cl
shl eax, 4
mov edx, dword [eax + esi + 0x43cc]
test edx, edx
je 0x437420
mov eax, dword [esi + 0x3f5c]
cmp eax, 0xa
jbe 0x437426
cmp cl, 8
jle 0x4373db
mov edi, 8
jmp 0x4373e6
test cl, cl
jge 0x4373e3
xor edi, edi
jmp 0x4373e6
movsx edi, cl
cmp cl, 8
jle 0x4373f2
mov ecx, 8
jmp 0x4373fd
test cl, cl
jge 0x4373fa
xor ecx, ecx
jmp 0x4373fd
movsx ecx, cl
shl ecx, 4
add eax, 0xfffffff6
xor edx, edx
div dword [ecx + esi + 0x43cc]
shl edi, 4
mov edx, dword [edi + esi + 0x43cc]
add edx, ebx
imul eax, edx
add eax, 0xa
jmp 0x437426
mov eax, dword [esi + 0x3f5c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
test edi, edi
je 0x4374c5
mov al, byte [esi + 0x37fc]
cmp al, 8
jle 0x437447
mov ecx, 8
jmp 0x437452
test al, al
jge 0x43744f
xor ecx, ecx
jmp 0x437452
movsx ecx, al
add ecx, 0x43d
shl ecx, 4
cmp dword [ecx + esi], 0
je 0x4374c5
mov edx, dword [esi + 0x3f60]
cmp edx, 0xa
ja 0x437472
mov dword [esp + 0x34], edx
jmp 0x4374cf
cmp al, 8
jle 0x43747d
mov ecx, 8
jmp 0x437488
test al, al
jge 0x437485
xor ecx, ecx
jmp 0x437488
movsx ecx, al
cmp al, 8
jle 0x437493
mov eax, 8
jmp 0x43749e
test al, al
jge 0x43749b
xor eax, eax
jmp 0x43749e
movsx eax, al
lea ebx, [eax + 0x43d]
lea eax, [edx - 0xa]
shl ebx, 4
xor edx, edx
add ecx, 0x43d
div dword [ebx + esi]
shl ecx, 4
mov ecx, dword [ecx + esi]
add ecx, edi
imul eax, ecx
add eax, 0xa
jmp 0x4374cb
mov eax, dword [esi + 0x3f60]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x437562
mov cl, byte [esi + 0x37fc]
cmp cl, 8
jle 0x4374ed
mov eax, 8
jmp 0x4374f8
test cl, cl
jge 0x4374f5
xor eax, eax
jmp 0x4374f8
movsx eax, cl
shl eax, 4
mov edx, dword [eax + esi + 0x43d4]
test edx, edx
je 0x437562
mov eax, dword [esi + 0x3f64]
cmp eax, 0xa
jbe 0x437568
cmp cl, 8
jle 0x43751d
mov edi, 8
jmp 0x437528
test cl, cl
jge 0x437525
xor edi, edi
jmp 0x437528
movsx edi, cl
cmp cl, 8
jle 0x437534
mov ecx, 8
jmp 0x43753f
test cl, cl
jge 0x43753c
xor ecx, ecx
jmp 0x43753f
movsx ecx, cl
shl ecx, 4
add eax, 0xfffffff6
xor edx, edx
div dword [ecx + esi + 0x43d4]
shl edi, 4
mov edx, dword [edi + esi + 0x43d4]
add edx, ebx
imul eax, edx
add eax, 0xa
jmp 0x437568
mov eax, dword [esi + 0x3f64]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x437605
mov cl, byte [esi + 0x37fc]
cmp cl, 8
jle 0x43758a
mov eax, 8
jmp 0x437595
test cl, cl
jge 0x437592
xor eax, eax
jmp 0x437595
movsx eax, cl
shl eax, 4
mov edx, dword [eax + esi + 0x43d8]
test edx, edx
je 0x437605
mov ebx, dword [esi + 0x3f68]
cmp ebx, 0xa
jbe 0x43760b
cmp cl, 8
jle 0x4375ba
mov edi, 8
jmp 0x4375c5
test cl, cl
jge 0x4375c2
xor edi, edi
jmp 0x4375c5
movsx edi, cl
cmp cl, 8
jle 0x4375d1
mov ecx, 8
jmp 0x4375dc
test cl, cl
jge 0x4375d9
xor ecx, ecx
jmp 0x4375dc
movsx ecx, cl
shl ecx, 4
lea eax, [ebx - 0xa]
xor edx, edx
div dword [ecx + esi + 0x43d8]
mov ecx, dword [esp + 0x60]
shl edi, 4
mov ebp, eax
mov eax, dword [edi + esi + 0x43d8]
add eax, ecx
imul ebp, eax
add ebp, 0xa
jmp 0x43760d
mov ebx, dword [esi + 0x3f68]
mov ebp, ebx
mov di, word [esi + 0x402c]
mov dword [esp + 0x20], ebp
test edi, 0xc0
jbe 0x43767b
mov cl, byte [esi + 0x37fc]
cmp cl, 8
jle 0x437632
mov eax, 8
jmp 0x43763d
test cl, cl
jge 0x43763a
xor eax, eax
jmp 0x43763d
movsx eax, cl
shl eax, 4
mov edx, dword [eax + esi + 0x43cc]
test edx, edx
jbe 0x43767b
cmp cl, 8
jle 0x437657
mov ecx, 8
jmp 0x437662
test cl, cl
jge 0x43765f
xor ecx, ecx
jmp 0x437662
movsx ecx, cl
mov eax, dword [esi + 0x3f5c]
xor edx, edx
shl ecx, 4
add eax, 0xfffffff6
div dword [ecx + esi + 0x43cc]
add dword [esp + 0x1c], eax
test edi, 0x300
jbe 0x4376da
mov cl, byte [esi + 0x37fc]
cmp cl, 8
jle 0x437695
mov eax, 8
jmp 0x4376a0
test cl, cl
jge 0x43769d
xor eax, eax
jmp 0x4376a0
movsx eax, cl
shl eax, 4
mov edx, dword [eax + esi + 0x43d8]
test edx, edx
jbe 0x4376da
cmp cl, 8
jle 0x4376ba
mov ecx, 8
jmp 0x4376c5
test cl, cl
jge 0x4376c2
xor ecx, ecx
jmp 0x4376c5
movsx ecx, cl
shl ecx, 4
lea eax, [ebx - 0xa]
xor edx, edx
div dword [ecx + esi + 0x43d8]
add ebp, eax
mov dword [esp + 0x20], ebp
test edi, 0xc00
jbe 0x43773d
mov cl, byte [esi + 0x37fc]
cmp cl, 8
jle 0x4376f4
mov eax, 8
jmp 0x4376ff
test cl, cl
jge 0x4376fc
xor eax, eax
jmp 0x4376ff
movsx eax, cl
shl eax, 4
mov edx, dword [eax + esi + 0x43d4]
test edx, edx
jbe 0x43773d
cmp cl, 8
jle 0x437719
mov ecx, 8
jmp 0x437724
test cl, cl
jge 0x437721
xor ecx, ecx
jmp 0x437724
movsx ecx, cl
mov eax, dword [esi + 0x3f64]
xor edx, edx
shl ecx, 4
add eax, 0xfffffff6
div dword [ecx + esi + 0x43d4]
add dword [esp + 0x30], eax
test byte [esi + 0x402e], 0x30
jbe 0x4377a2
mov al, byte [esi + 0x37fc]
cmp al, 8
jle 0x437757
mov ecx, 8
jmp 0x437762
test al, al
jge 0x43775f
xor ecx, ecx
jmp 0x437762
movsx ecx, al
add ecx, 0x43d
shl ecx, 4
cmp dword [ecx + esi], 0
jbe 0x4377a2
cmp al, 8
jle 0x43777c
mov eax, 8
jmp 0x437787
test al, al
jge 0x437784
xor eax, eax
jmp 0x437787
movsx eax, al
lea ecx, [eax + 0x43d]
mov eax, dword [esi + 0x3f60]
shl ecx, 4
add eax, 0xfffffff6
xor edx, edx
div dword [ecx + esi]
add dword [esp + 0x34], eax
mov dx, word [esi + 0x4026]
mov ecx, dword [esp + 0x14]
and edx, 0x4000
test dx, dx
je 0x4377c7
lea edx, [ecx + ecx*2]
mov eax, 0xcccccccd
mul edx
shr edx, 3
add ecx, edx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esi + 0x42fc], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x4300], edx
mov edx, dword [esp + 0x64]
mov dword [esi + 0x4304], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x430c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x4310], eax
mov dword [esi + 0x4314], edi
mov dword [esi + 0x4308], edx
mov edx, dword [esp + 0x34]
mov dword [esi + 0x4318], ebp
mov dword [esi + 0x431c], ebx
mov dword [esi + 0x4360], ecx
call dword [sym.imp.rm3944.dll_NewFocusEffect]
mov edx, dword [esp + 0x30]
mov dword [esi + 0x4368], edx
mov edx, dword [esp + 0x20]
call dword [sym.imp.rm3944.dll_NewGshieldEffect]
mov edx, dword [esp + 0x8c]
cmp edx, eax
mov eax, dword [esp + 0x7c]
jmp 0x43785e
mov ecx, esi
call fcn.00439e10
mov ecx, esi
call fcn.004348c0
mov ecx, esi
call fcn.004350a0
mov ecx, esi
call fcn.00434a70
cmp dword [esp + 0x94], edi
jmp 0x43789d
mov ecx, esi
call fcn.00439e40
mov ecx, esi
call fcn.00435010
mov ecx, esi
call fcn.00434ef0
push 1
mov ecx, esi
call fcn.00434780
cmp dword [esp + 0x88], ebp
jmp 0x4378de
mov ecx, esi
call fcn.00439e70
mov ecx, esi
call fcn.00434a70
mov eax, dword [esp + 0x90]
pop edi
pop ebp
cmp eax, ebx
pop ebx
jmp 0x437914
mov ecx, esi
call fcn.00439ea0
push 1
mov ecx, esi
call fcn.004346c0
mov ecx, esi
call fcn.00434820
mov ecx, esi
call fcn.00434c20
mov al, byte [esi + 0x402a]
xor edx, edx
test al, 2
je 0x4379c6
mov cl, byte [esi + 0x3eb8]
cmp cl, 1
jne 0x437984
mov ax, word [esi + 0x3eba]
cmp ax, 0x51
jl 0x437960
cmp ax, 0x5f
jle 0x4379c6
cmp ax, 0x8c
jl 0x43796c
cmp ax, 0x8f
jle 0x4379c6
cmp ax, 0xdc
je 0x4379c6
cmp ax, 0xdd
je 0x4379c6
cmp ax, 0xaa
jl 0x437984
cmp ax, 0xae
jle 0x4379c6
cmp cl, 6
jne 0x4379b4
mov ax, word [esi + 0x3eba]
cmp ax, 0x52
je 0x4379c6
cmp ax, 0x70
je 0x4379c6
cmp ax, 0x84
je 0x4379c6
cmp ax, 0x98
je 0x4379c6
cmp ax, 0xac
je 0x4379c6
cmp ax, 0xc0
je 0x4379c6
push 1
push 1
push 0x31
mov ecx, esi
call fcn.0042cb70
mov edx, 1
call dword [sym.imp.rm3944.dll_NewSkillWeapReqFix]
nop
je 0x437a83
mov cl, byte [esi + 0x3eb8]
cmp cl, 1
jne 0x437a1d
mov ax, word [esi + 0x3eba]
cmp ax, 0x34
jl 0x4379f5
cmp ax, 0x3f
jle 0x437a83
cmp ax, 0x89
je 0x437a83
cmp ax, 0x8a
je 0x437a83
cmp ax, 0xf0
je 0x437a83
cmp ax, 0xf1
je 0x437a83
cmp ax, 0xbe
jl 0x437a1d
cmp ax, 0xc2
jle 0x437a83
cmp cl, 6
jne 0x437a4d
mov ax, word [esi + 0x3eba]
cmp ax, 0x54
je 0x437a83
cmp ax, 0x72
je 0x437a83
cmp ax, 0x86
je 0x437a83
cmp ax, 0x9a
je 0x437a83
cmp ax, 0xae
je 0x437a83
cmp ax, 0xc2
je 0x437a83
cmp cl, 1
jne 0x437a71
mov ax, word [esi + 0x3eba]
cmp ax, 0x44
jl 0x437a65
cmp ax, 0x48
jle 0x437a83
cmp ax, 0x91
jl 0x437a71
cmp ax, 0x92
jle 0x437a83
push 1
push 1
push 2
mov ecx, esi
call fcn.0042cb70
mov edx, 1
test byte [esi + 0x4026], 0x40
je 0x437b40
mov cl, byte [esi + 0x3eb8]
cmp cl, 1
jne 0x437ada
mov ax, word [esi + 0x3eba]
cmp ax, 0x34
jl 0x437ab2
cmp ax, 0x3f
jle 0x437b40
cmp ax, 0x89
je 0x437b40
cmp ax, 0x8a
je 0x437b40
cmp ax, 0xf0
je 0x437b40
cmp ax, 0xf1
je 0x437b40
cmp ax, 0xbe
jl 0x437ada
cmp ax, 0xc2
jle 0x437b40
cmp cl, 6
jne 0x437b0a
mov ax, word [esi + 0x3eba]
cmp ax, 0x54
je 0x437b40
cmp ax, 0x72
je 0x437b40
cmp ax, 0x86
je 0x437b40
cmp ax, 0x9a
je 0x437b40
cmp ax, 0xae
je 0x437b40
cmp ax, 0xc2
je 0x437b40
cmp cl, 1
jne 0x437b2e
mov ax, word [esi + 0x3eba]
cmp ax, 0x44
jl 0x437b22
cmp ax, 0x48
jle 0x437b40
cmp ax, 0x91
jl 0x437b2e
cmp ax, 0x92
jle 0x437b40
push 1
push 1
push 0x16
mov ecx, esi
call fcn.0042cb70
mov edx, 1
mov ax, word [esi + 0x4024]
and eax, 0x400
test ax, ax
je 0x437bd9
mov cl, byte [esi + 0x3eb8]
cmp cl, 1
jne 0x437b97
mov ax, word [esi + 0x3eba]
cmp ax, 0x34
jl 0x437b73
cmp ax, 0x3f
jle 0x437bd9
cmp ax, 0x89
je 0x437bd9
cmp ax, 0x8a
je 0x437bd9
cmp ax, 0xf0
je 0x437bd9
cmp ax, 0xf1
je 0x437bd9
cmp ax, 0xbe
jl 0x437b97
cmp ax, 0xc2
jle 0x437bd9
cmp cl, 6
jne 0x437bc7
mov ax, word [esi + 0x3eba]
cmp ax, 0x54
je 0x437bd9
cmp ax, 0x72
je 0x437bd9
cmp ax, 0x86
je 0x437bd9
cmp ax, 0x9a
je 0x437bd9
cmp ax, 0xae
je 0x437bd9
cmp ax, 0xc2
je 0x437bd9
push 1
push 1
push 0xa
mov ecx, esi
call fcn.0042cb70
mov edx, 1
mov cx, word [esi + 0x4024]
and ecx, 0x800
test cx, cx
je 0x437c73
mov cl, byte [esi + 0x3eb8]
cmp cl, 1
jne 0x437c31
mov ax, word [esi + 0x3eba]
cmp ax, 0x34
jl 0x437c0d
cmp ax, 0x3f
jle 0x437c73
cmp ax, 0x89
je 0x437c73
cmp ax, 0x8a
je 0x437c73
cmp ax, 0xf0
je 0x437c73
cmp ax, 0xf1
je 0x437c73
cmp ax, 0xbe
jl 0x437c31
cmp ax, 0xc2
jle 0x437c73
cmp cl, 6
jne 0x437c61
mov ax, word [esi + 0x3eba]
cmp ax, 0x54
je 0x437c73
cmp ax, 0x72
je 0x437c73
cmp ax, 0x86
je 0x437c73
cmp ax, 0x9a
je 0x437c73
cmp ax, 0xae
je 0x437c73
cmp ax, 0xc2
je 0x437c73
push 1
push 1
push 0xb
mov ecx, esi
call fcn.0042cb70
mov edx, 1
test byte [esi + 0x4028], 4
je 0x437d01
mov cl, byte [esi + 0x3eb8]
cmp cl, 1
jne 0x437cc2
mov ax, word [esi + 0x3eba]
cmp ax, 0x34
jl 0x437c9e
cmp ax, 0x3f
jle 0x437d01
cmp ax, 0x89
je 0x437d01
cmp ax, 0x8a
je 0x437d01
cmp ax, 0xf0
je 0x437d01
cmp ax, 0xf1
je 0x437d01
cmp ax, 0xbe
jl 0x437cc2
cmp ax, 0xc2
jle 0x437d01
cmp cl, 6
jne 0x437cf2
mov ax, word [esi + 0x3eba]
cmp ax, 0x54
je 0x437d01
cmp ax, 0x72
je 0x437d01
cmp ax, 0x86
je 0x437d01
cmp ax, 0x9a
je 0x437d01
cmp ax, 0xae
je 0x437d01
cmp ax, 0xc2
je 0x437d01
push 1
push 1
push 0x22
mov ecx, esi
call fcn.0042cb70
jmp 0x437d05
test edx, edx
je 0x437d15
push 0
push 0
push 0xa5
mov ecx, esi
call fcn.0043fc10
pop esi
add esp, 0x3a8
ret