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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0xa0]
push edi
mov dword [esp + 0x14], esi
call fcn.0046f2e0
test eax, eax
jne 0x49ccf9
mov ecx, dword [esi + 0xa0]
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x40], edi
cmp dword [ecx + 0x100], 2
mov dword [esp + 0x18], edi
sete al
mov dword [esp + 0x54], ebx
mov dword [esp + 0x3c], eax
cmp eax, edi
je 0x49bf42
push 1
push 1
push edi
push 1
lea eax, [esp + 0x50]
push eax
call fcn.0047f200
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0xa0]
mov esi, dword [eax + 0x1d4]
sub esi, dword [eax + 0x1d0]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x34], esi
jmp 0x49bf65
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
call fcn.00489160
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
cmp edi, esi
mov dword [esp + 0x28], edi
jg 0x49c451
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], esi
cmp dword [esp + 0x3c], esi
je 0x49bfdb
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
xor edi, edi
cmp ecx, esi
mov edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edi
jle 0x49bfc0
lea esp, [esp]
mov ebx, 0xd
cmp bx, word [eax + edi*2]
jne 0x49bfb7
mov ebx, 0xa
cmp bx, word [eax + edi*2 + 2]
je 0x49bfbc
inc edi
cmp edi, ecx
jl 0x49bfa0
mov dword [esp + 0x1c], edi
lea eax, [eax + edi*2 + 4]
mov dword [esp + 0x40], eax
mov eax, 0xfffffffe
sub eax, edi
add ecx, eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ecx
jmp 0x49c00f
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa0]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + 0x334]
lea eax, [ecx + ecx*8]
lea eax, [edx + eax*4]
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x34]
jne 0x49c008
mov edi, dword [esp + 0x44]
jmp 0x49c00b
mov edi, dword [eax]
dec edi
mov dword [esp + 0x1c], edi
cmp edi, esi
jle 0x49c1c4
lea eax, [edx + edi*2 - 2]
movzx ecx, word [eax]
mov edx, 0x20
cmp dx, cx
je 0x49c032
mov edx, 9
cmp dx, cx
jne 0x49c03a
dec edi
sub eax, 2
cmp edi, esi
jg 0x49c01b
cmp edi, esi
mov dword [esp + 0x1c], edi
jle 0x49c1c4
mov ebx, dword [esp + 0x24]
lea ebx, [ebx]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + esi*2]
mov ecx, 9
cmp cx, ax
jne 0x49c07d
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
xor eax, eax
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
jmp 0x49c088
mov ecx, 0x20
cmp cx, ax
jne 0x49c096
inc ebx
inc esi
cmp esi, edi
jl 0x49c050
mov dword [esp + 0x24], ebx
jmp 0x49c1c4
cmp esi, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
jge 0x49c1c4
jmp 0x49c0b0
mov edx, dword [esp + 0x20]
movzx eax, word [edx + esi*2]
mov ecx, 9
cmp cx, ax
jne 0x49c0e8
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov ebx, dword [esp + 0x10]
mov eax, ebx
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
mov dword [esp + 0x10], ebx
jmp 0x49c1bb
test byte [0x5c3eab], 1
movzx eax, ax
jne 0x49c20a
movzx ecx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3eb8], 0
mov dword [esp + 0x38], ecx
jne 0x49c14b
mov ecx, dword [0x5e3ebc]
lea edx, [esp + 0x60]
push edx
push 1
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c139
mov edx, dword [0x5c3e94]
sub dword [esp + 0x60], edx
movzx eax, word [esp + 0x38]
mov cx, word [esp + 0x60]
mov word [eax*2 + 0x5c3eb8], cx
cmp word [0x5c3fa8], 0
movzx ebx, word [eax*2 + 0x5c3eb8]
mov eax, 0x78
mov dword [esp + 0x30], eax
jne 0x49c1a6
mov ecx, dword [0x5e3ebc]
lea edx, [esp + 0x68]
push edx
push 1
lea eax, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c192
mov edx, dword [0x5c3e94]
sub dword [esp + 0x68], edx
mov eax, dword [esp + 0x30]
mov dx, word [esp + 0x68]
movzx ecx, ax
mov word [ecx*2 + 0x5c3eb8], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3eb8]
add ecx, ecx
cmp ebx, ecx
jge 0x49c219
inc dword [esp + 0x10]
inc esi
cmp esi, edi
jl 0x49c0b0
cmp dword [esp + 0x3c], 0
je 0x49c22a
cmp esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38], ebx
jge 0x49c23e
lea esp, [esp]
mov ecx, dword [esp + 0x20]
mov eax, 9
cmp ax, word [ecx + esi*2]
jne 0x49c220
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov eax, ebx
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
jmp 0x49c221
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c1b7
add dword [esp + 0x10], 2
jmp 0x49c1bb
inc ebx
inc esi
cmp esi, dword [esp + 0x50]
jl 0x49c1e0
jmp 0x49c23a
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa0]
mov ebx, dword [edx + 0xdc]
mov dword [esp + 0x38], ebx
xor eax, eax
test edi, edi
jle 0x49c26c
mov ecx, dword [ebp + 8]
cmp ecx, 2
jne 0x49c258
mov eax, ebx
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
jmp 0x49c26c
cmp ecx, 1
jne 0x49c26c
mov eax, ebx
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
cdq
sub eax, edx
sar eax, 1
xor edi, edi
test eax, eax
jle 0x49c278
add dword [esp + 0x18], eax
mov edi, eax
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jle 0x49c3df
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
lea esp, [esp]
movzx eax, word [ecx + ebx*2]
mov esi, 9
cmp si, ax
je 0x49c2a8
mov esi, 0x20
cmp si, ax
jne 0x49c2b2
inc ebx
cmp ebx, edx
jl 0x49c290
jmp 0x49c3df
cmp ebx, edx
jge 0x49c3df
lea ebx, [ebx]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + ebx*2]
mov ecx, 9
cmp cx, ax
jne 0x49c2fc
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
add edi, ecx
test ecx, ecx
jle 0x49c3d4
add dword [esp + 0x18], ecx
jmp 0x49c3d4
test byte [0x5c3eab], 1
movzx eax, ax
jne 0x49c489
movzx ecx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3eb8], 0
mov dword [esp + 0x30], ecx
jne 0x49c35f
mov ecx, dword [0x5e3ebc]
lea edx, [esp + 0x70]
push edx
push 1
lea eax, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c34d
mov edx, dword [0x5c3e94]
sub dword [esp + 0x70], edx
movzx eax, word [esp + 0x30]
mov cx, word [esp + 0x70]
mov word [eax*2 + 0x5c3eb8], cx
cmp word [0x5c3fa8], 0
movzx esi, word [eax*2 + 0x5c3eb8]
mov eax, 0x78
mov dword [esp + 0x2c], eax
jne 0x49c3ba
mov ecx, dword [0x5e3ebc]
lea edx, [esp + 0x78]
push edx
push 1
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c3a6
mov edx, dword [0x5c3e94]
sub dword [esp + 0x78], edx
mov eax, dword [esp + 0x2c]
mov dx, word [esp + 0x78]
movzx ecx, ax
mov word [ecx*2 + 0x5c3eb8], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3eb8]
add ecx, ecx
cmp esi, ecx
jge 0x49c49c
inc edi
inc dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x49c2c0
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
test esi, esi
je 0x49c427
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov eax, dword [ecx + 0x1d0]
mov ebx, dword [ecx + 0x334]
mov ecx, dword [ecx + 0x1c0]
add eax, edx
lea eax, [eax + eax*8]
mov eax, dword [ebx + eax*4]
dec eax
lea ebx, [edx + edx*2]
cmp dword [ecx + ebx*4 + 4], eax
jge 0x49c427
mov eax, dword [esp + 0x38]
cmp edi, eax
jge 0x49c427
sub eax, edi
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
cmp edx, eax
jl 0x49c433
test esi, esi
je 0x49c438
add dword [esp + 0x18], 2
inc edx
cmp edx, eax
mov dword [esp + 0x28], edx
jle 0x49bf71
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ff95f
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x49c4a4
push ebx
call fcn.004ff96a
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c3cf
add edi, 2
jmp 0x49c3d0
mov ecx, dword [esp + 0x5c]
mov eax, ebx
xor ebx, ebx
cmp edi, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], edi
jg 0x49ca4e
jmp 0x49c4ca
mov eax, dword [esp + 0x40]
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], edi
cmp dword [esp + 0x3c], edi
je 0x49c52d
mov ecx, dword [esp + 0x4c]
xor esi, esi
cmp ecx, edi
mov edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], esi
jle 0x49c510
mov edi, edi
mov edi, 0xd
cmp di, word [eax + esi*2]
jne 0x49c507
mov edi, 0xa
cmp di, word [eax + esi*2 + 2]
je 0x49c50c
inc esi
cmp esi, ecx
jl 0x49c4f0
mov dword [esp + 0x1c], esi
lea eax, [eax + esi*2 + 4]
mov dword [esp + 0x40], eax
mov eax, 0xfffffffe
sub eax, esi
add ecx, eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ecx
xor edi, edi
jmp 0x49c561
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa0]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + 0x334]
lea eax, [ecx + ecx*8]
lea eax, [edx + eax*4]
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x34]
jne 0x49c55a
mov esi, dword [esp + 0x44]
jmp 0x49c55d
mov esi, dword [eax]
dec esi
mov dword [esp + 0x1c], esi
cmp esi, edi
jle 0x49c593
lea eax, [edx + esi*2 - 2]
lea esp, [esp]
movzx ecx, word [eax]
mov edx, 0x20
cmp dx, cx
je 0x49c587
mov edx, 9
cmp dx, cx
jne 0x49c58f
dec esi
sub eax, 2
cmp esi, edi
jg 0x49c570
mov dword [esp + 0x1c], esi
cmp esi, edi
mov dword [esp + 0x30], edi
jle 0x49c71f
nop
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edi*2]
mov ecx, 9
cmp cx, ax
jne 0x49c5cf
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
xor eax, eax
cdq
idiv ecx
sub ecx, edx
add dword [esp + 0x24], ecx
jmp 0x49c5dd
mov ecx, 0x20
cmp cx, ax
jne 0x49c5eb
inc dword [esp + 0x24]
inc edi
cmp edi, esi
jl 0x49c5a0
mov dword [esp + 0x30], edi
jmp 0x49c71f
cmp edi, esi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], edi
mov dword [esp + 0x10], edx
jge 0x49c71f
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
movzx eax, word [eax + ecx*2]
mov edx, 9
cmp dx, ax
jne 0x49c63c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x10c]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
add edi, ecx
mov dword [esp + 0x10], edi
jmp 0x49c70e
test byte [0x5c3eab], 1
movzx eax, ax
jne 0x49c76e
movzx edx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3eb8], 0
mov dword [esp + 0x38], edx
jne 0x49c69e
mov edx, dword [0x5e3ebc]
lea eax, [esp + 0x78]
push eax
push 1
lea ecx, [esp + 0x40]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c68c
mov eax, dword [0x5c3e94]
sub dword [esp + 0x78], eax
movzx eax, word [esp + 0x38]
mov cx, word [esp + 0x78]
mov word [eax*2 + 0x5c3eb8], cx
cmp word [0x5c3fa8], 0
movzx edi, word [eax*2 + 0x5c3eb8]
mov eax, 0x78
mov dword [esp + 0x5c], eax
jne 0x49c6f9
mov ecx, dword [0x5e3ebc]
lea edx, [esp + 0x70]
push edx
push 1
lea eax, [esp + 0x64]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c6e5
mov edx, dword [0x5c3e94]
sub dword [esp + 0x70], edx
mov eax, dword [esp + 0x5c]
mov dx, word [esp + 0x70]
movzx ecx, ax
mov word [ecx*2 + 0x5c3eb8], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3eb8]
add ecx, ecx
cmp edi, ecx
jge 0x49c77d
inc dword [esp + 0x10]
mov eax, dword [esp + 0x30]
inc eax
cmp eax, esi
mov dword [esp + 0x30], eax
jl 0x49c600
cmp dword [esp + 0x3c], 0
je 0x49c792
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x50]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x38], edi
jge 0x49c7a6
jmp 0x49c740
mov edx, dword [esp + 0x20]
mov ecx, 9
cmp cx, word [edx + eax*2]
jne 0x49c784
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov ecx, dword [ecx + 0x10c]
mov eax, edi
cdq
idiv ecx
mov eax, dword [esp + 0x30]
sub ecx, edx
add edi, ecx
jmp 0x49c785
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c70a
add dword [esp + 0x10], 2
jmp 0x49c70e
inc edi
inc eax
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
jl 0x49c740
jmp 0x49c7a2
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov edi, dword [eax + 0xdc]
mov dword [esp + 0x38], edi
xor edx, edx
test esi, esi
jle 0x49c7d6
mov eax, dword [ebp + 8]
cmp eax, 2
jne 0x49c7c0
mov edx, edi
sub edx, dword [esp + 0x10]
add edx, dword [esp + 0x24]
jmp 0x49c7d6
cmp eax, 1
jne 0x49c7d6
mov eax, edi
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
xor edi, edi
test edx, edx
jle 0x49c805
mov ecx, dword [esp + 0x2c]
mov eax, 0x20
movzx esi, ax
lea edi, [ecx + ebx*2]
mov eax, esi
shl esi, 0x10
or eax, esi
mov ecx, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
add ebx, edx
rep stosw word es:[edi], ax
mov dword [esp + 0x18], ebx
mov edi, edx
mov ecx, dword [esp + 0x1c]
xor esi, esi
test ecx, ecx
jle 0x49c9a2
mov edx, dword [esp + 0x20]
movzx eax, word [edx + esi*2]
mov edx, 9
cmp dx, ax
je 0x49c82f
mov edx, 0x20
cmp dx, ax
jne 0x49c839
inc esi
cmp esi, ecx
jl 0x49c813
jmp 0x49c9a2
cmp esi, ecx
jge 0x49c9a2
mov eax, dword [esp + 0x20]
movzx eax, word [eax + esi*2]
mov ecx, 9
cmp cx, ax
jne 0x49c8aa
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
mov edx, ecx
add edi, edx
mov dword [esp + 0x10], edi
test edx, edx
jle 0x49c997
mov ecx, dword [esp + 0x2c]
lea edi, [ecx + ebx*2]
mov eax, 0x20
movzx ebx, ax
mov eax, ebx
shl ebx, 0x10
or eax, ebx
mov ebx, dword [esp + 0x18]
mov ecx, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [esp + 0x10]
add ebx, edx
jmp 0x49c993
test byte [0x5c3eab], 1
movzx eax, ax
jne 0x49cbe2
movzx edx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3eb8], 0
mov dword [esp + 0x5c], edx
jne 0x49c90c
mov edx, dword [0x5e3ebc]
lea eax, [esp + 0x68]
push eax
push 1
lea ecx, [esp + 0x64]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c8fa
mov eax, dword [0x5c3e94]
sub dword [esp + 0x68], eax
movzx eax, word [esp + 0x5c]
mov cx, word [esp + 0x68]
mov word [eax*2 + 0x5c3eb8], cx
cmp word [0x5c3fa8], 0
movzx edx, word [eax*2 + 0x5c3eb8]
mov eax, 0x78
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
jne 0x49c96a
mov edx, dword [0x5e3ebc]
lea eax, [esp + 0x60]
push eax
push 1
lea ecx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3eb0], 0
je 0x49c956
mov eax, dword [0x5c3e94]
sub dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mov dx, word [esp + 0x60]
movzx ecx, ax
mov word [ecx*2 + 0x5c3eb8], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3eb8]
add ecx, ecx
cmp dword [esp + 0x24], ecx
jge 0x49cbf5
inc edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov cx, word [eax + esi*2]
mov word [edx + ebx*2], cx
inc ebx
mov dword [esp + 0x18], ebx
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x49c841
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x28]
je 0x49ca16
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov eax, dword [ecx + 0x1d0]
mov esi, dword [ecx + 0x334]
mov ecx, dword [ecx + 0x1c0]
add eax, edx
lea eax, [eax + eax*8]
mov eax, dword [esi + eax*4]
dec eax
lea esi, [edx + edx*2]
cmp dword [ecx + esi*4 + 4], eax
jge 0x49ca16
cmp edi, dword [esp + 0x38]
jge 0x49ca16
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
sub eax, edi
lea esi, [edx + ebx*2]
mov edx, eax
mov eax, 0x20
mov edi, esi
movzx esi, ax
mov eax, esi
shl esi, 0x10
mov ecx, edx
or eax, esi
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
add ebx, edx
mov edx, dword [esp + 0x28]
rep stosw word es:[edi], ax
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x34]
cmp edx, ecx
jl 0x49ca25
cmp dword [esp + 0x3c], 0
je 0x49ca41
mov eax, dword [esp + 0x2c]
mov esi, 0xd
mov word [eax + ebx*2], si
inc ebx
mov esi, 0xa
mov word [eax + ebx*2], si
inc ebx
mov dword [esp + 0x18], ebx
inc edx
cmp edx, ecx
mov dword [esp + 0x28], edx
jle 0x49c4c6
mov eax, dword [esp + 0x54]
push eax
call fcn.004ff96a
mov edx, dword [esp + 0x30]
xor ecx, ecx
add esp, 4
mov word [edx + ebx*2], cx
cmp dword [esp + 0x3c], ecx
je 0x49cbfd
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xa0]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [eax + 0x334]
mov eax, dword [eax + 0x1c0]
lea ecx, [ecx + ecx*8]
mov esi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*4]
dec esi
cmp edi, esi
mov eax, edi
jl 0x49caaa
mov eax, esi
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xa0]
mov ecx, dword [ecx + 0x10c]
push ecx
push eax
push edx
call fcn.00485ed0
mov edx, dword [esp + 0x20]
sub eax, dword [edx + 0x80]
add esp, 0xc
cmp edi, esi
jle 0x49cad7
sub edi, esi
add eax, edi
mov ecx, dword [0x5c3e88]
imul ecx, eax
mov dword [esp + 0x58], ecx
mov ecx, edx
mov eax, dword [ecx + 0xa0]
mov edi, dword [eax + 0x1d0]
sub edi, dword [ecx + 0x7c]
mov ecx, dword [eax + 0x1d4]
mov edx, dword [eax + 0x334]
imul edi, dword [0x5c3e74]
mov eax, dword [eax + 0x1c0]
lea ecx, [ecx + ecx*8]
mov esi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + ecx + 4]
dec esi
cmp ecx, esi
mov dword [esp + 0x44], ecx
jl 0x49cb38
mov ecx, esi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xa0]
mov eax, dword [eax + 0x10c]
push eax
push ecx
push edx
call fcn.00485ed0
mov ecx, dword [esp + 0x20]
sub eax, dword [ecx + 0x80]
add esp, 0xc
cmp dword [esp + 0x44], esi
mov dword [esp + 0x50], eax
jle 0x49cb73
mov ecx, dword [esp + 0x44]
sub ecx, esi
add eax, ecx
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0xa0]
mov edx, dword [esi + 0x1c0]
mov eax, dword [esp + 0x5c]
mov edx, dword [edx + eax + 8]
add edx, dword [esp + 0x50]
mov esi, dword [esi + 0x1d4]
imul edx, dword [0x5c3e88]
sub esi, dword [ecx + 0x7c]
push 0
imul esi, dword [0x5c3e74]
push 1
push 0
push 1
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x3c]
push ebx
push edx
call fcn.0049b590
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
push 1
push esi
mov esi, dword [esp + 0x1c]
push eax
push edi
push ecx
mov ecx, esi
call fcn.00499310
mov ecx, esi
call fcn.00490900
jmp 0x49ccec
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c981
add edi, 2
jmp 0x49c982
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x8c]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
push 0
push edx
mov edx, dword [esp + 0x60]
push ebx
mov ebx, dword [esp + 0x50]
push eax
push edi
push ebx
push ecx
mov ecx, dword [esi + 0xa0]
push edx
call fcn.00480ee0
test ebx, ebx
jle 0x49cc46
mov eax, dword [esi + 0xa0]
mov edx, dword [eax + 0x334]
lea ecx, [edi + edi*8]
mov ebx, dword [edx + ecx*4]
dec ebx
mov eax, dword [esi + 0xa0]
cmp dword [eax + 0x100], 0
push 0
push 0
je 0x49ccac
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
mov dword [eax + 0x1ac], ecx
mov ecx, 1
mov dword [eax + 0x1b8], ecx
mov dword [eax + 0x100], ecx
mov dword [eax + 0x1a8], edx
mov dword [eax + 0x1b4], ebx
mov dword [eax + 0x1b0], edi
mov eax, dword [esi + 0xa0]
mov dword [eax + 0x190], edi
mov edx, dword [esi + 0xa0]
push ecx
mov ecx, esi
mov dword [edx + 0x194], ebx
call fcn.00495900
jmp 0x49ccec
push 0
mov ecx, esi
call fcn.00495900
cmp dword [esi + 0x78], 0
mov edi, dword [0x5ed83c]
jle 0x49cccb
mov dword [0x5ed83c], 1
mov eax, dword [esi + 0x160]
add eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x15c]
add ecx, dword [esi + 0x64]
push eax
push ecx
mov ecx, esi
call fcn.00496250
mov dword [0x5ed83c], edi
mov edx, dword [esp + 0x2c]
push edx
call fcn.004ff96a
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4